2016-09-13 5 views
0

私はsshに入っているUbuntuのボックスからログアウト時にthis lovely scriptを使用しようとしています。私が手動で呼び出すと、色は正しいです。しかし、いつでもそれは .bash_logout から実行しています、すべてのラインが白とカラーコードが付いている:printfの色が.bash_logoutから動作しない

\x1B[38;5;160;01m .d8888b. 8888888888 8888888888  Y88b d88P .d88888b. 888  888 
\x1B[38;5;196;01m d88P Y88b 888  888    Y88b d88P d88P" "Y88b 888  888 
\x1B[38;5;202;01m "Y888b. 8888888 8888888   Y888P 888  888 888  888 
\x1B[38;5;208;01m  "Y88b. 888  888     888  888  888 888  888 
\x1B[38;5;214;01m  "888 888  888     888  888  888 888  888 
\x1B[38;5;220;01m Y88b d88P 888  888     888  Y88b. .d88P Y88b. .d88P 
\x1B[38;5;226;01m "Y8888P" 8888888888 8888888888   888  "Y88888P" "Y88888P" 

TERMはVMと私のホストの両方にのxterm-256色に設定されている(OS X 10.11) 。私はecho -eを使ってみましたが、それはすべて-eの色文字列の前にありました。スクリプトの内容を.bash_logoutに直接追加するのは面倒です。思考?

+0

Ok。* .bash_logout *の行を 'sh seeyou ...'から '' sh seeyou ... 'に変更してください。あなたを参照してください 'または'ソース参照してください... 'それを修正しました。何も思いつきません。 – mattpolicastro

+0

これを回答として追加し、他の人にマークすることができます。 –

答えて

0

POSIXシェルでは、printfコマンドで\xXXエスケープを使用することはできません。あなたは8進表記しか使えません。 .またはsourceを使用すると、POSIXシェルを使用する代わりに、現在のbashプロセスでスクリプトが実行されます。 bash seeyouも同様に機能していました。ファイルそのものであるため、唯一の.bash_logout POSIXに準拠したから実行されるコードを作成する特別な理由がない、もちろん

ESC_SEQ="\033[38;5;" 

:スクリプトの

A POSIX準拠のバージョンは、最初の行を次のように変更しますbashに特異的である。

+0

ああ、説明をありがとう! – mattpolicastro

関連する問題