尝试为我的命令输出着色,我陷入了理解之间的区别
- 登录我的机器并查看 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
并查看更新后的文件。