远程执行文件不起作用

远程执行文件不起作用

我正在尝试/tmp/cmd使用 SSH 在远程计算机 (slc05bkt) 上执行本地文件(此处)。这是我从脚本文件中尝试的命令:

cmd="ssh -v ssuthari@slc05bkt \"bash -l -s\" < /tmp/cmd"
$cmd

它给了我以下例外:

ksh: line 1: /tmp/cmd: cannot open [No such file or directory]

即使我将此本地文件的副本添加到同一位置的远程计算机后,它仍然给我一个错误:

ksh: line 1: bash -l -s: not found

具有讽刺意味的是,我可以直接在命令行上执行命令,但无法从脚本中执行上述行。有人可以帮我解决这个问题吗?

答案1

$cmd不会评估您的变量,它只是扩展它并作为字符串传递给 shell,这就是您收到错误的原因。对于你的情况,请尝试eval "$cmd"

无论如何,我建议使用$(ssh the_rest_of_your_command_line)而不是eval "$cmd",因为这eval是一个坏习惯。

相关内容