SSH経由で他のホストに接続するときのPS1色の変更

SSH経由で他のホストに接続するときのPS1色の変更

SSHを使用して接続しているホストに基づいてPS1の外観を変更しようとしています。私の現在のPS1:

PS1='\[\e[1;32m\]\u@\h\[\e[1;34m\] \w\[\e[1;31m\]$(__git_ps1)\[\e[1;0;37m\] \$\[\e[0m\] '

ホストの場合は、黄色を例にしてhost1最初の色を黄色に変更したいと思います。1;33host21;35

SSHを使用して特定のホストに接続されていることを確認し、それに応じてPS1を変更するにはどうすればよいですか?

ベストアンサー1

プロンプト仕様をフラグメントとして作成するか、中間変数を使用するか、2つを組み合わせて使用​​します。SSH_CLIENTログインする場所を示す SSH 設定変数です。その後、ホスト名を使用してログインした場所を確認できます。

if [[ -n $SSH_CLIENT ]]; then
  case $HOSTNAME in
    *.example.com) prompt_user_host_color='1;35';; # magenta on example.com
    *) prompt_user_host_color='1;33';; # yellow elsewhere
  esac
else
  unset prompt_user_host_color # omitted on the local machine
fi
if [[ -n $prompt_user_host_color ]]; then
  PS1='\[\e['$prompt_user_host_color'm\]\u@\h'
else
  PS1=
fi
PS1+='\[\e[1;34m\] \w\[\e[1;31m\]$(__git_ps1)\[\e[1;0;37m\] \$\[\e[0m\] '

おすすめ記事