我在我们的一些机器 atm 上遇到了奇怪的行为。至少,这对我和我的同事来说似乎很奇怪,我们没有找到任何解释:)
[编辑 1]
下一段似乎是错误的。请参阅最后的编辑 2。
我们在这里使用 bash 和 zsh。因此,当通过 SSH 连接到某些ssh login@host
配置为使用 zsh 作为默认 shell(带有chsh -s /usr/bin/zsh
)的 zsh-default-machines(plain )时,然后打开的 shell 是一个交互式但非登录的shell,无论我们是否已经登录是否在相应的机器上。
根据我的理解,通过 SSH 连接到一台机器应该是在该机器上启动一个新的用户会话,因此要求 shell 是一个登录 shell,对吗?zsh 不应该也是这种情况吗?
在机器上将默认 shell 更改为 bash 时,登录机器使用 login-shell。
这是 zsh 的正常行为吗?能不能改?或者是一些配置错误?
[/编辑 1]
[编辑 2] 好的,根据 ZSH 文档,您可以轻松测试它是否是登录 shell:
$ if [[ -o login ]]; then; print yes; else; print no; fi
Run Code Online (Sandbox Code Playgroud)
见:http: //zsh.sourceforge.net/Guide/zshguide02.html
但是,由于 zsh man 条目/文档, zsh 应该 source /etc/profile
,而后者又在/etc/profile.d/*.sh
. 我上面的问题源于这样一个事实,即脚本 …