tom*_*ozb 5 colors bash prompt
我正在尝试根据我使用 SSH 连接的主机来更改 PS1 外观。我现在的 PS1:
PS1='\[\e[1;32m\]\u@\h\[\e[1;34m\] \w\[\e[1;31m\]$(__git_ps1)\[\e[1;0;37m\] \$\[\e[0m\] '
Run Code Online (Sandbox Code Playgroud)
主机host1
我想和黄色这是为了替换第一颜色1;33
和用于host2
取1;35
作为一个例子。
如何确定我已使用 SSH 连接到给定主机并相应地更改 PS1?
Gil*_*il' 11
分段构建您的提示规范,或使用中间变量,或两者的组合。SSH 设置SSH_CLIENT
变量,该变量指示您从何处登录。然后,您可以使用主机名来确定您登录的位置。
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\] '
Run Code Online (Sandbox Code Playgroud)