我正在编写一个用户命令作为别名,它使用不同颜色的 awk 打印输出。
我想出的小片段在 KDE Konsole 中运行良好,但在 xterm 或 gnome-terminal 中却不行。
我的 shell 是 SLES11 上的 BASH,终端设置为 XTERM
myuser@myhost:~> env |grep -i term
TERM=xterm
COLORTERM=1
别名定义如下:
alias myCustomPS="\
awk '{ \
gsub(/\.CONTEXT/,\"\", \$11); \
split(\$11,v,\"_D\"); \
split(\$13,h,\".\"); \
if (\$1==\"usr1\")
printf \"pid [\033[1;37;48;2;0;0;128m %5s \033[0m] [\033[1;37;48;2;0;0;128m %.8s \033[0m] \033[1;37;48;2;0;0;128m %-8.10s \033[0m D%-8s\n\", \$2, \$1, h[1], v[2]; \
else if (\$1==\"usr2\") \
printf \"pid [\033[1;37;48;2;0;170;170m %5s \033[0m] [\033[1;37;48;2;0;170;170m %.8s \033[0m] \033[1;37;48;2;0;170;170m %-8.10s \033[0m D%-8s\n\", \$2, \$1, h[1], v[2]; }'"
我得到的输出仅在 Konsole 中正确显示。
xterm 和 gnome-terminal 都不能正确显示。在 Xterm 中根本没有显示颜色,在 gnome-terminal 中只显示字体颜色,没有背景。
任何想法或替代方法来普遍着色 awk 输出?谢谢,罗伯托