シェルに制御文字を入力すると、いわゆる「キャレット表記」を使用して制御文字が表示されます。たとえば、エスケープは^[
キャレット表記。
私はbashシェルをカスタマイズして、見栄えを良くしたいと思っています。たとえば、私はPS1
およびPS2
色付けされます。今度は、コントロールキャラクターに独特の外観を持たせて、通常のキャラクターとより区別できるようにしたいと思います。
$ # Here I type CTRL-C to abort the command.
$ blahblah^C
^^ I want these two characters to be displayed differently
シェルでコントロールキャラクターを別の方法で強調表示する方法はありますか?
太字で表示したり、通常のテキストとは異なる色で表示したりできますか?
ここではbashシェルを使用していますが、質問にbash
のタグを付けていません。
注制御文字の強調表示がどのレベルで行われるかわかりません。私はそれがシェル自体にあると最初に思った。 readlineがbash。したがって、質問にはreadline
のタグが付けられましたが、私はまだ回答を探しています。
通常、このコードは.bashrcファイルにあります。
function get_exit_status()
{
local code=$?
if [ $code -ne 0 ]
then
printf $'\001\033[31m\002'"($code)"$'\001\033[0m\002'" "
fi
}
そして、私は私のPS1でこの関数を呼び出します
PS1='\u@\h \w $(get_exit_status)'
これにより、^ Cを押すと、プロンプトに表示されます
I@mycomputer ~ ^C
I@mycomputer ~ (130)
「0」以外のすべての終了ステータスコードが要求されます。