我有一个生成 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(使用前将#替换为@)