MOTD 和运行部件的着色输出不同

MOTD 和运行部件的着色输出不同

尝试为我的命令输出着色,我陷入了理解之间的区别

  • 登录我的机器并查看 MOTD
  • 在 /etc/update-motd.d/ 上运行 run-parts

我创建了这个测试脚本来说明:

#!/bin/bash
W="\e[0;39m"
R="\e[1;31m"
G="\e[1;32m"
echo -e "This is a test for ${G}GREEN${W} and ${R}RED${W}"
echo -e "Lets highlight some colors aight?" | grep --color 'ight'

当我直接运行它时,两条线都有颜色。

root@server:/etc/update-motd.d# ./test-file

当我通过 run-part 运行它时,两条线都有颜色。

root@server:/etc/update-motd.d# run-parts ./

当我登录时,只有第一行被着色!

我怎样才能有彩色 grep 甚至调试它?

答案1

登录后就没有了run-parts /etc/update-motd.d。这种情况run-parts时有发生,非交互地, 更新/etc/motd

默认情况下,以grep非交互方式运行时不显示颜色(有充分的理由)。你可以尝试一下grep --color=always,也许吧TERM=xterm grep --color=always

使用sudo update-motd(8)立即更新/etc/motd并查看更新后的文件。

相关内容