case 〜 in で分岐
これをみると、UID
もしくは USERNAME
あたりを使うことでできそう。
共通化している .zshrc
に以下の設定を加えるだけで分岐ができました。
case ${USERNAME} in
'root')
PROMPT="%{$fg[magenta]%}%n%(!.#.$)%{$reset_color%} "
PROMPT2="%{$fg[green]%}%_> %{$reset_color%}"
SPROMPT="%{$fg[red]%}correct: %R -> %r [nyae]? %{$reset_color%}"
RPROMPT="%{$fg[cyan]%}[%~]%{${reset_color}%}"
;;
'xxx')
PROMPT="%{$fg[yellow]%}%n%(!.#.$)%{$reset_color%} "
PROMPT2="%{$fg[green]%}%_> %{$reset_color%}"
SPROMPT="%{$fg[red]%}correct: %R -> %r [nyae]? %{$reset_color%}"
RPROMPT="%{$fg[cyan]%}[%~]%{${reset_color}%}"
;;
'xxxxxx')
PROMPT="%{$fg[black]$bg[yellow]%}%n%(!.#.$)%{$reset_color%} "
PROMPT2="%{$fg[green]%}%_> %{$reset_color%}"
SPROMPT="%{$fg[red]%}correct: %R -> %r [nyae]? %{$reset_color%}"
RPROMPT="%{$fg[cyan]%}[%~]%{${reset_color}%}"
;;
*)
PROMPT="%{$fg[green]%}%n%(!.#.$)%{$reset_color%} "
PROMPT2="%{$fg[green]%}%_> %{$reset_color%}"
SPROMPT="%{$fg[red]%}correct: %R -> %r [nyae]? %{$reset_color%}"
RPROMPT="%{$fg[cyan]%}[%~]%{${reset_color}%}"
;;
esac
rootなら magenta
、 xxxユーザーなら yellow
、 xxxxxxユーザーなら 文字色 black
の 背景 yellow
、 それ以外の全ユーザーは 'green' という設定になっています。 xxx などのところはユーザーによって分けてください。
これで設定ファイルが同一でも、ユーザー毎でプロンプトの色を変更しておくことができるようになりました。