私の.bashrcでは、ANSIターミナルのカラーコードを使用して、さまざまなビットを色分けしています。次のようになります。
PS1='\u@\h:\w\[\033[33m\]$(virtual_env)\[\033[32m\]$(git_branch)\[\033[0m\]$ '
どこvirtual_envとgit_branch標準出力に出力のものというbashの関数です。
さて、読みやすく変更しやすくするために、色コードを直接に埋め込むのではなく、変数に色コードを保存して参照したいと思いPS1ます。だから私はこのような変数の束を持っています:
GREEN="\[\033[32m\]"
YELLOW="\[\033[33m\]"
RESET="\[\033[0m\]"
次のようなものを書きたいです。
PS1='\u@\h:\w${YELLOW}$(virtual_env)${GREEN}$(git_branch)${RESET}$ '
しかし、これは機能しません-エスケープされているように、色コードがプロンプトに表示されます。代わりに二重引用符を使用すると、色は正しく機能PS1しますが、プロンプトは変更したときにのみ変化しますsource ~/.bashrc。
私は人々が見た他のことを試しました-をprintf使用して、色に一重引用符を使用し、色変数の代わりに\[and \]を入れPS1ますが、何もうまくいかないようです。
カラーコードに変数を使用するにはどうすればよいですか?
.bashrcか?