PS1 para Bash + Korn

2

Estou tentando definir um prompt para o shell bash que está funcionando, mas esse sistema em particular também usa bastante o Korn.

echo ~/.profile -> export PS1="\[3[38;5;10m\][\u@\h \W]\$ \[\]"

No Bash:

[root@mysystem ~]$ (in green)

Em Korn:

[033[38;5;10m][u@h W]$ [] (default color)

Alguém pode me ajudar a configurar isso corretamente para os dois shells?

    
por jacksonecac 15.06.2017 / 17:12

2 respostas

2

A partir dos comentários, parece que você gostaria de verificar se está executando bash e, nesse caso, definir o valor PS1 para bash e, caso contrário, defini-lo como ksh .

Isso é fácil:

if [ -n "$BASH_VERSION" ]; then
    # set PS1 for bash
else
    # set PS1 for ksh (or non-bash in general)
fi

[ -n "$BASH_VERSION" ] será true se $BASH_VERSION não for vazio, o que será se o shell atual for bash .

    
por 16.06.2017 / 13:32
1

A resposta de Kusalananda é boa, mas apenas no caso de alguém decidir export BASH_VERSION antes de invocar o ksh (enganando assim o teste), você poderia testar o valor de $0 :

case "$0" in
  (*ksh)  PS1="ksh version"     ;;
  (*bash) PS1="bash version"    ;;
  (*)     PS1="default version" ;;
esac

Este teste não é infalível; se você ln -s /bin/bash /tmp/bashksh invocar /tmp/bashksh , o código acima indicará falsamente que você está executando o ksh.

    
por 21.06.2017 / 02:23