使用putty -m选项可以“找不到命令”

时间:2013-10-28 16:43:56

标签: linux ssh putty

如果我打开一个shell到putty -load session_name的机器,然后执行命令将作业添加到linux系统(qsub -cwd -b hostname)上的网格队列,一切正常。

但是如果我将命令添加到文本文件中,然后执行putty -load session_name -m file.txt,我会得到qsub: command not found

如果我退出并简化文本文件只是命令hostname并使用-m选项,它也可以正常工作。

如果我使用Connection-> SSH-> Remote命令,并执行与-m命令类似的操作,我会从命令行获得相同的结果。

我是Linux系统的新手,这似乎应该是一个简单的解决方法来告诉'qsub'存在于某个地方。对这些远程访问的东西或者有一些限制......

编辑:

好的,所以最初的问题是如何运行它 - 我想出来(添加绝对路径),但也有其他环境变量问题。似乎qsub需要设置SGE_ROOT变量,但是也没有为远程命令窗口设置。

所以,更好的问题是,如何使用与手动命令行shell相同的属性和设置打开putty远程命令shell(使用-m)?

1 个答案:

答案 0 :(得分:1)

当您以交互方式登录时,

qsub在您的路径上,但在非交互式shell中则不是。在脚本中提供完整路径,或在脚本中设置PATH,您应该解决问题。

您似乎需要在交互式会话的上下文中运行命令,但sshd协议并不直接执行此操作。因此,请尝试通过/bin/sh间接调用命令。

/bin/sh -i -c "qsub -cwd -b hostname"

-i使shell自身初始化为交互式,因此它将加载.profile.bashrc中加载到真实交互式shell中的所有环境变量。 -c提供了在该交互式shell中运行的命令。

您不必以这种方式显式设置任何路径,因为它在交互式会话中起作用。