bash echo -e "\e[1mFOO" 返回正常文本

bash echo -e "\e[1mFOO" 返回正常文本

我很确定我在编写 bash 脚本时做错了什么。感谢其他人,我能够使用 echo 来制作文本大胆的... 但从那时起所有内容也都是粗体。如何关闭echo -e "\e[1mFOO"以便将来的echo print read etc命令本身不再是粗体?

如果已经有人使用相同的关键词询问并回答了这个问题,我深感抱歉,我只是向我展示了有关如何使文本加粗的所有问题/指南,但没有一个展示如何将其恢复正常。

举个例子,以防我表达不清楚我在问什么

输入:

#!/bin/bash
echo "This is normal"
echo -e "\e[1mThis is bold"
echo "Even though there is no '-e' operator, this is still bold but I want it normal"

输出:

这个是正常的

这是大胆的

即使没有“-e”运算符,这仍然是粗体,但我希望它恢复正常

多谢!

答案1

将文本输出改为粗体后,您必须将控制台重置为正常文本输出:

#!/bin/bash
echo "This is normal"
echo -e "\e[1mThis is bold"
tput sgr0 #Reset text attributes to normal without clear.
echo "This" #NORMAL

如果 tput 在您的环境中不起作用,您也可以将颜色代码恢复正常:

#!/bin/bash
echo "This is normal"
echo -e "\e[1mThis is bold"
echo -e "\e[0mThis is normal again"

相关内容