将终端颜色扩展到行尾

2024-05-10

我有一个生成 motd 的 bash 脚本。问题取决于某些终端设置,我不确定颜色是否会延伸到行尾。其他时候则不然:

e.g.

v.s.

IIRC 一个只是普通的 gnome 终端,另一个是我的 tmux 术语。所以我的问题是如何才能将其扩展到 80 个字符(或者实际上扩展到终端宽度)。当然我可以填充到 80 个字符,但这并不能解决问题。

这是我生成 motd 的代码片段:

TC_RESET="^[[0m"                                                                
TC_SKY="^[[0;37;44m"                                                            
TC_GRD="^[[0;30;42m"                                                            
TC_TEXT="^[[38;5;203m"   

echo -n "${TC_SKY}                                                                              

... lots of printing..." 
echo -e "\n                           Welcome to Mokon's Linux!                           \n"

echo -n "${TC_GRD}"                                                             
nodeinfo # Just prints the info seen below...                                                                       
echo ${TC_RESET} 

如何以编程方式从 bash 更改终端设置或更改行尾的颜色?


也许使用转义序列至清除至 EOL http://www.isthe.com/chongo/tech/comp/ansi_escapes.html

由于某种原因(在我的 MacOS 终端上!)我只需要指定这个序列,然后它适用于所有行,但为了完整起见,我列出了所有行

TC_RESET=$'\x1B[0m'
TC_SKY=$'\x1B[0;37;44m'
TC_GRD=$'\x1B[0;30;42m'
TC_TEXT=$'\x1B[38;5;203m'
CLREOL=$'\x1B[K'

echo -n "${TC_SKY}${CLREOL}"
echo -e "\n           ABC${CLREOL}\n"
echo -e "\n              DEFG${CLREOL}\n"

echo -n "${TC_GRD}"
echo -e "\n           ABC${CLREOL}\n"
echo -e "\n              DEFG${CLREOL}\n"
echo ${TC_RESET}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将终端颜色扩展到行尾 的相关文章

随机推荐