によるとman bash
、PS1
環境変数 (シェル プロンプトの定義) で:
\[ begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt
\] end a sequence of non-printing characters
そして、私が見たさまざまな例によると、非印刷文字シーケンスを\[
andで囲むことになっ\]
ていますが、それらを含めても違いはないようです!
例えば:
export PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n[\t]\$ '
以下と同じように動作するようです:
export PS1='\e]0;\w\a\n\e[32m\u@\h \e[33m\w\e[0m\n[\t]$ '
(つまり、同じですが、\[
とが\]
削除されています)。
では、このように一連の非印刷文字を囲むことの利点は何でしょうか? 非印刷文字を無視できるように、ダム端末に出力するとき(私が行う必要はありません)ですか?(おそらくPS1
、非対話型セッションでは無視されるため、スクリプトを作成する場合には使用できないと思います。)