如果我使用
ssh -Y username@hostname
并到达另一台主机并输入x时钟&它工作正常。但是如果我在脚本中使用它在线像
ssh -Y username@hostname x clock & ;
它给了我错误,因为 ksh: x clock: not found。
请建议。
首先,我认为它应该是xclock
而不是x clock
(没有空间!)。如果您想通过 SSH 执行命令,那么理想情况下,您将拥有以下内容:
ssh user@host 'ls -lrt'
赶紧跑:
ssh -Y username@hostname clock
您正在使用的脚本尝试执行x
不存在的命令
当您在单行上运行命令时,您的远程 shell 将处于非交互模式。由于在远程 shell 中执行了不同的脚本,因此您的PATH
设置是不同的。
解决此问题的一种方法是找到设置PATH
交互式 shell 的脚本,同时找到非交互式 shell 使用的脚本,并调整后者以PATH
与第一个类似地设置。
另一种可能更简单的解决方案是在命令中使用完整路径,请按照下列步骤操作:
像往常一样使用 登录ssh
,然后检查要运行的命令的完整路径。如果命令是,xclock
那么您可以使用 来检查其完整路径which xclock
,例如:
$ which xclock
/usr/X11/bin/xclock
注销,然后运行您的单行命令,但使用如下完整路径:
ssh -Y username@hostname /usr/X11/bin/xclock