PS1 для Bash + Korn

Я пытаюсь установить приглашение для оболочки bash, которая работает, однако эта конкретная система также использует Korn совсем немного.

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

В Баше:

 [root@mysystem ~]$ (in green) 

В Корне:

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

Может ли кто-нибудь помочь мне правильно установить это для обеих оболочек?

Из комментариев это похоже на то, что вы просто хотите проверить, используете ли вы bash , и в этом случае установите значение PS1 для bash и в противном случае установите его для ksh .

Это легко:

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

[ -n "$BASH_VERSION" ] будет истинным, если $BASH_VERSION является пустым, что будет, если текущая оболочка – bash .

Ответ Кусалананды хорош, но на всякий случай кто-то решает export BASH_VERSION перед export BASH_VERSION ksh (таким образом, обманывая тест), вы могли бы вместо этого проверить значение $0 :

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

Этот тест не является непогрешимым; если вы ln -s /bin/bash /tmp/bashksh , затем вызовите /tmp/bashksh , приведенный выше код будет ложно указывать, что вы используете ksh.