スマイリーフェイスを使用するように端末のbashプロンプトをカスタマイズする方法を見つけようとしています。私が欲しいのは(ブローの例に見られるように)、cwdをプロンプトから\ n離して、コマンドが成功した場合は緑色のスマイリーフェイスを表示し、失敗した場合は赤色の悲しい顔を表示することです。
何か案は?
これは、Peepcodeのスクリーンキャストに触発されました。
アンドフリームニルのコードをいじってさらに調査を行った後、私はついに私が望むものを手に入れました。
PS1="\w \`if [ \$? = 0 ]; then echo -e '\[\e[01;32m\]\n\xE2\x98\xBA'; else echo -e '\[\e[01;31m\]\n\xE2\x98\xB9'; fi\` \[\e[01;34m\]\[\e[00m\]"
ここに絵文字のリスト を見つけてから それらを変換 を改行文字の後に表示される3桁のバイトコードに変換します。
cwd
を取得するには、\w
を使用するだけでした。 \u@\w
を実行して現在のユーザーを表示することもできます。これにより、joshsmith@~
のようなものが出力されます。
上に示したスマイリーフェイスはUnicode文字のようです0x263a
。したがって、Unicode対応のターミナルが必要になります(terminal.appがこれをサポートしているかどうかはわかりませんが、サポートしていると思います)。
リターンコードが0の場合は緑のスマイリーフェイスを、それ以外の場合は赤の眉をひそめた顔を印刷するサンプルコードを次に示します。
PS1="\[\e[01;32m\]\u@\h \[\e[01;34m\]\W \`if [ \$? = 0 ]; then echo -e '\[\e[01;32m\]:)'; else echo -e '\[\e[01;31m\]:('; fi\` \[\e[01;34m\]$\[\e[00m\]"
クレジットはArchフォーラムのFingelに送られます(彼はそれを投稿しました ここ )。