入力したコマンドが他のコマンドから視覚的に「目立つ」端末のスクリーンショットをキャプチャする必要があります。現在、これを使用して、入力したコマンドを「赤」にします。
PS1='\[\e[0;31m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[0;34m\]\$ \[\e[m\]\[\e[0;31m\]'
問題は、入力したテキストだけでなく、プロンプトの後のすべてが赤くなることです。
どうすればこれを修正できますか?
私はbash(CentOS 7)を使用しています。
トラップを使用してこれを達成できます:trap 'echo -ne "\e[0m"' DEBUG
Bashの男によると:DEBUG
のトラップが実行されます
すべての単純なコマンドの前、コマンドの場合、ケースコマンド、選択コマンド、コマンドのすべての算術、および最初のコマンドがシェル関数で実行される前
したがって、コマンドを実行するたびに、シェルは\e[0m
を挿入して、前のカラーコードを無効にします。コマンドが実行された後、プロンプトを介して再設定するためだけです。
私はここで明らかにハックトリックを見つけました: https://wiki.archlinux.org/index.php/Color_Bash_Prompt#Different_colors_for_text_entry_and_console_output