当我使用 mobaXterm ssh 到 RHEL7 服务器(保存了 uname 和 pwd)时,我只看到一个闪烁的光标,它将接受输入但不执行任何操作。我可以按下ctrl+c然后出现bash-4.2$,一切都很好,但是这很烦人,并且ctrl+c在登录时添加到 mobaXterm 执行命令并不能“解决”这里的问题。
使用其他 ssh/telnet 工具如 putty,secureFX 产生相同的结果(ctrl+c以获得交互式 shell)
如果.profile实际上确实包含:
SHELL=`type -p bash`
exec bash -l
Run Code Online (Sandbox Code Playgroud)
没有.bash_profile,我们有一个循环。您的登录 shell(例如/bin/sh,也许)读取.profile,这导致它exec作为登录 shell bash。Bash 在作为登录 shell 运行时读取.bash_profile,如果缺少.profile. 因此,它也会读取执行这些命令,这会导致它exec作为登录 shell进行bash。Bash,当作为登录 shell 运行时,......
这可能是一种更明智的方法:
if [ -z "${BASH_VERSION}" ];
then
SHELL=`type -p bash`
exec bash -l
fi
Run Code Online (Sandbox Code Playgroud)
但是,您应该要求您的系统管理员将 bash 设置为您的登录 shell,而不是像这样的 hack(假设您自己不能使用chsh)。