将 shell 从 ksh 更改为 bash 并更改 .profile 中的提示符

将 shell 从 ksh 更改为 bash 并更改 .profile 中的提示符

我在我的 .profile 中使用它来在登录时切换到 bash:

case $- in
  *i*)
    # Interactive session. Try switching to bash.
    if [ -z "$BASH" ]; then # do nothing if running under bash already
      bash=$(command -v bash)
      if [ -x "$bash" ]; then
        export SHELL="$bash"
        exec "$bash -l"
      fi
    fi
esac

有没有办法让 bash shell 打开后自动执行以下命令?

PS1='\[\e[1;91m\][\u@\h \w]\$\[\e[0m\] '

我将该行放入 .bash_profile 中,但它不会更改提示。

答案1

对于交互式 shell,请将PS1行放入您的 中~/.bashrc,而不是放在~/.profile和 source it 中:

source ~/.bashrc 

(或注销/登录)

此外,如果您想永久更改您的 shell:

chsh -s /bin/bash

或以 root 身份使用vipw或进行编辑editor /etc/passwd

答案2

这应该可行:

...
export SHELL="$bash"
PS1='\[\e[1;91m\][\u@\h \w]\$\[\e[0m\] ' exec $bash -l
...

如果您拥有 root 或类似权限:

usermod -s $bash dave111

相关内容