gpt4 book ai didi

linux - 在 linux 终端中输出彩色命令后,我的命令行变色了

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:47:13 24 4
gpt4 key购买 nike

我想使用 shell 脚本对 ping 命令输出进行着色。但在这个过程中,我最终让我的命令行也变色了。有什么方法可以让我的输出只有颜色吗?

这是我的 bash 脚本:

#!/bin/bash
num=1
for((i=1; i <= "$1"; i++))
do
echo "$(tput setaf "$num")Hello $i"
((num=num + 1))
done

请看这个例子:

this

最佳答案

设置后需要重新设置颜色。使用 tput,这可以使用 tput sgr0(删除所有属性)来完成。示例:

#!/bin/bash
num=1
for((i=1; i <= "$1"; i++))
do
echo "$(tput setaf "$num")Hello $i$(tput sgr0)"
((num=num + 1))
done

将颜色设置想象成标记,而您的终端仿真器就是显示标记文本的东西。它无法知道程序输出的开始和结束位置,因为它接收的只是连续的文本流(以及“标记”的控制代码)。根据您的提示配置(参见 echo $PS1),您的提示可能有也可能没有设置颜色的标记。如果不是,则没有任何内容可以覆盖程序输出给出的颜色标记,因此,提示符将获得程序上次设置的任何颜色。

(注意:我的 bash 不支持您在 for 循环条件中使用的任何语法。我只是更改了相关部分。)

关于linux - 在 linux 终端中输出彩色命令后,我的命令行变色了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35115096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com