PS1
色を動的に選択するようにプロンプト変数を設定しようとしています。これを行うために、色名を使用して一連のローカル変数を定義しました。
$ echo $Green
\033[0;32m
しかし、変数を動的に割り当てる際にそれらを使用したいと思っていましたが、それらを適切に拡張する方法がわかりません。
> colorstr="\${$color}"
> echo $colorstr
${Green}
eval
、、echo
および二重引用符の組み合わせを12回試しましたが、どれも機能しないようです。変数を展開する論理的な方法(私は思った)はエラーになります:
> colorstr="${$color}"
-bash: ${$color}: bad substitution
(わかりやすくするために、プロンプト文字の>
代わりに使用しまし$
たが、bashを使用しています)
その変数を展開するにはどうすればよいですか?つまり、どういうわけか「緑」という単語を値に変換します\033[0;32m
か?そして、できれば、bashまたは端末にそれ\033[0;32m
を緑色として解析させることもできます。
編集:私は誤用し${!x}
てeval echo $x
いたので、以前はそれらを解決策として受け入れました。(おそらく病的に)好奇心旺盛な人のために、関数とPS1
変数はこの要点にあります:https ://gist.github.com/4383597