O prompt remoto é definido pelo controle remoto ~/.bashrc . Então você ainda precisa copiá-lo para o servidor remoto. No entanto, você pode usar um único ~/.bashrc para todos os hosts e definir a cor do prompt com base no nome do host:
[ "$PS1" ] || return 0 # continue only when interactive
case $(hostname -s) in
laptop*)
prompt_color='3[48;5;16m3[38;5;46m' # green(46) on black(16)
;;
server*)
prompt_color='3[48;5;16m3[38;5;196m' # red(196) on black(16)
;;
esac
ORIG_PS1=$PS1 # in case needed
PS1='<\['${prompt_color}'\]\h\[3[m\]:\w>\$ '
unset prompt_color
Notas:
-
Não defina
PS1se ainda não estiver definido (ou seja, se o shell não for interativo). Testar sePS1não é vazio é uma maneira muito comum de decidir se o shell é interativo e você não quer confundir programas que fazem isso. (Indiscutivelmente um teste mais preciso é verificar se$-contémi.) -
Se quiser que esse código seja executado ao efetuar login em um servidor remoto, você deverá ter um dos arquivos de perfil sempre como fonte
~/.bashrc. Mas eu suponho que você saiba disso. -
Em
PS1, os códigos de escape devem estar entre\[...\]. -
\[033[mredefine o primeiro plano e o segundo plano como padrão. Então, aqui,:\waparecem no primeiro plano / segundo plano do terminal. -
\[033[48;5;XXXm3[38;5;YYYmdefine o plano de fundo / primeiro plano comoXXX/YYY. -
Para um script que despeja as cores disponíveis, tente
colortest. -
Para verificar a aparência do prompt:
echo -e "<3[48;5;16m3[38;5;196mhost3[m:dir>$ "