私の.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
か?