Bashプロンプトは、新しいプロンプトが表示されるたびにコマンドを実行します。

Bashプロンプトは、新しいプロンプトが表示されるたびにコマンドを実行します。

bashに現在のgitブランチを示す次のプロンプトがあります。

PS1+="$(git_prompt)" #git_prompt is a function in my .bashrc

.bashrcを取得すると動作しますが、ブランチを変更すると動作しません。したがって、PS1 varは.bashrcを取得したときにのみ評価されますが、新しいプロンプトが表示されるたびに評価する必要があります。 Bash 4.3でこれを達成するには?

ベストアンサー1

今はプロンプトとして使用して問題を解決しました。

PS1="$green\u $r@ $red\h $r: $yellow\W \!$r \$(git_prompt) \n$yellow\$ $r"

複数の文字列を1つのPS1文字列にリンクする前に問題があるようです。秘密は、\コマンドを実行する前に作成することです$(git_prompt)

だから$(git_prompt)評価すると評価を受けるようになり、.bashrc

\$(git_prompt)新しいプロンプトが表示されるたびに評価されます。

おすすめ記事