不同的交互式和非交互式 shell

不同的交互式和非交互式 shell

一个用户帐户的 shell 在 passwd 文件中定义为 bash。我想将此用户帐户的 shell 更改为 tcsh 以用于非交互式作业(如 ssh ),但将交互式 shell 保留为 bash。有什么方法可以在系统上进行配置吗?

答案1

如果您希望登录 shell 使用一个 shell,而非登录 shell 使用另一个 shell,您可以通过将用户的默认 shell(在 /etc/passwd 中)定义为要用作非登录 shell(在您的情况下为 tcsh)的 shell,然后在打开登录 shell 时切换到不同的 shell 来实现。

对于您来说,可以通过将其添加到用户主目录中名为“.profile”的文件来实现(如果该文件尚不存在,则创建它):

# Switch to bash for login shells
if [ ! -n "$BASH_VERSION" ]
then
        exec /bin/bash -l
fi

相关内容