88

私はgitを初めて使用し、現在のgitブランチを既存のプロンプトに追加しようとしています。これは次のように定義されています。

RESET="\[\017\]"
NORMAL="\[\033[0m\]"
RED="\[\033[31;1m\]"
YELLOW="\[\033[33;1m\]"
WHITE="\[\033[37;1m\]"
SMILEY="${WHITE}:)${NORMAL}"
FROWNY="${RED}:(${NORMAL}"
SELECT="if [ \$? = 0 ]; then echo \"${SMILEY}\"; else echo \"${FROWNY}\"; fi"

export PS1="${RESET}${YELLOW}\u@\h${NORMAL} \`${SELECT}\` ${YELLOW}\w $(__git_ps1) >${NORMAL} "

(ファイルを再度調達して.bashrc)試してみたところ、機能しているように見えましたが、別のブランチに移動しても更新されませんでした。$(__git_ps1)がキャッシュされていないことを確認するにはどうすればよいですか?

4

2 に答える 2

141

$すぐに展開されないように、円記号が必要です。`...`(別の書き方である、と比較してください$(...)。)

export PS1="${RESET}${YELLOW}\u@\h${NORMAL} \`${SELECT}\` ${YELLOW}\w \$(__git_ps1) >${NORMAL} "

一重引用符の使用については@MikeSepに同意しますが、実際には、色などをすぐに置き換える方が少し最適です。必要ありません、少しだけ良いです。とはいえ、一重引用符を使用すると、何が起こっているのかを理解しやすくなります

于 2011-03-21T15:45:57.037 に答える
25

文字PS1列は保存される前に評価されている可能性があり__git_ps1ますが、コマンドプロンプトが表示されるたびにコマンドを実行する必要があります。行に二重引用符ではなく一重引用符を使用することをお勧めしますexport PS1='${RESET}...'

于 2011-03-21T15:42:25.297 に答える