Fedora/Red Hat の /etc/bashrc ファイルに次の行が表示されます。
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
どのテストが行われていますか[ "$PS1" = "\\s-\\v\\\$ " ]
?テストが成功した場合にのみPS1が設定されるのはなぜですか?
ベストアンサー1
\s-\v\$␣
デフォルトのプロンプト文字列です。、PS1
設定されていない場合、Bash が対話式で起動したときに設定される値です。これには、シェルプロセスのデフォルト名(通常bash
はまたはsh
)、バージョン、およびドル記号(たとえば)が表示されますbash-4.4$
。 (またはifの代わりに#
aを使用$
してrootとして実行します。)
より便利なプロンプトを設定するアイデアのようですが、他の起動ファイルがすでに設定されている場合はそうではありません。
"\\s-\\v\\\$ "
二重引用符で囲まれた文字列内の特定の値は\x
特別な意味を持つため、バックスラッシュは2倍になりますx
。\\
リテラルバックスラッシュを明示的に表します。 (何らかの理由で彼らは宿題をそうしなかったが)。
一重引用符で囲まれた文字列を使用すると、バックスラッシュを読みやすくします。
[ "$PS1" = '\s-\v\$ ' ] && PS1='[\u@\h \W]\$ '