Bashスクリプトのカラーコードの周りに\ [\]を含めないと、いつ/何が壊れる可能性がありますか? [コピー]

Bashスクリプトのカラーコードの周りに\ [\]を含めないと、いつ/何が壊れる可能性がありますか? [コピー]

私はカラーコードを使って遊んで、それがbashスクリプトでどのように使用されているかを理解しようとしました。

これ..

red="\033[38;5;203m"
export PS1="$red\u$green\$(__git_ps1)$blue \W"

..同じ結果を提供します。

red="\[\033[38;5;203m\]"
export PS1="$red\u$green\$(__git_ps1)$blue \W"

それでは、2番目の形式が必要ですか?

ベストアンサー1

プロンプト\[に...で囲まれていない印刷できない文字が含まれている場合、\]シェルはプロンプトの幅を誤って計算します。その結果、カーソル位置が混乱し、表示が誤って更新される。一般的な例は、長さがウィンドウの幅を超えるほど長いコマンドを入力して次の行に進み、バックスペースを使用して最初の行に戻る場合です。

おすすめ記事