-1

如果我使用

ssh -Y username@hostname

并到达另一台主机并输入x时钟&它工作正常。但是如果我在脚本中使用它在线像

ssh -Y username@hostname x clock & ;

它给了我错误,因为 ksh: x clock: not found。

请建议。

4

3 回答 3

2

首先,我认为它应该是xclock而不是x clock(没有空间!)。如果您想通过 SSH 执行命令,那么理想情况下,您将拥有以下内容:

ssh user@host 'ls -lrt'

于 2013-05-20T07:44:03.777 回答
1

赶紧跑:

ssh -Y username@hostname  clock 

您正在使用的脚本尝试执行x不存在的命令

于 2013-05-20T07:40:37.277 回答
0

当您在单行上运行命令时,您的远程 shell 将处于非交互模式。由于在远程 shell 中执行了不同的脚本,因此您的PATH设置是不同的。

解决此问题的一种方法是找到设置PATH交互式 shell 的脚本,同时找到非交互式 shell 使用的脚本,并调整后者以PATH与第一个类似地设置。

另一种可能更简单的解决方案是在命令中使用完整路径,请按照下列步骤操作:

  1. 像往常一样使用 登录ssh,然后检查要运行的命令的完整路径。如果命令是,xclock那么您可以使用 来检查其完整路径which xclock,例如:

    $ which xclock 
    /usr/X11/bin/xclock
    
  2. 注销,然后运行您的单行命令,但使用如下完整路径:

    ssh -Y username@hostname /usr/X11/bin/xclock
    
于 2013-05-20T07:43:09.107 回答