在我学习非交互式登录 shell 的过程中,我遇到了 2 种通过 SSH 远程执行命令的方法。对我来说,它们看起来都是一样的。但不幸的是,他们不是。
使用命令echo "shopt login_shell; echo \$-" | ssh -l poweruser 192.168.1.67
,我得到以下输出。
Pseudo-terminal will not be allocated because stdin is not a terminal.
poweruser@192.168.1.67's password:
login_shell on
hBs
Run Code Online (Sandbox Code Playgroud)
但是使用命令ssh -l poweruser 192.168.1.67 "shopt login_shell; echo \$-"
,我得到了不同的输出。
poweruser@192.168.1.67's password:
login_shell off
hBc
Run Code Online (Sandbox Code Playgroud)
你能告诉我为什么在第二种情况下 shell 不是登录 shell,即使它提示输入密码。
归档时间: |
|
查看次数: |
2534 次 |
最近记录: |