コマンド出力に色を付けようとすると、次の違いを理解するのが困難になります。
- マイコンピュータにログインしてMOTDを表示します。
- /etc/update-motd.d/で実行部分を実行します。
説明するために、このテストスクリプトを作成しました。
#!/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
更新されたファイルを確認してください。