1. ホーム
  2. git

[解決済み] bashのプロンプトが更新されないのですが?

2023-04-30 13:56:16

質問

私は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) がキャッシュされないようにするにはどうしたらよいでしょうか?

どのように解決するのですか?

にはバックスラッシュが必要です。 $ にバックスラッシュが必要で、すぐに展開されません。 (比較対象は `...` という書き方は、別の方法で $(...) .)

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

シングルクォートを使うことについては@MikeSepと同意見ですが、実は色などをすぐに代入させる方が少し最適なのです。 必須ではありませんが、ただ多少はマシです。 とはいえ、それは 一重引用符を使えば、何が起こっているのか理解しやすくなります。