我正在尝试远程运行本地脚本,而我正在调用其他一些代码。基本甲酸是
ssh -i ${PemKey} ${User}@${URL} 'bash -s' -- < ${Command}
我收到错误行24: ${Command}: ambiguous redirect
Command是一个字符串,其中包含我要运行的脚本的名称及其参数。如果我将脚本更改为只打印命令
echo "ssh -i ${PemKey} ${User}@${URL} 'bash -s' -- < ${Command}"
然后自己运行命令它工作得很好。 我已经尝试将命令放在temp变量中,然后以这种方式调用它,如:
TEMP="ssh -i ${PemKey} ${User}@${URL} 'bash -s' -- < ${Command}"
$TEMP
echo $TEMP
这导致No such file or directory
。同样,命令的回显版本在命令行运行得很好。
任何人都知道我在这里做错了吗?
答案 0 :(得分:1)
似乎执行$TEMP
无法正常工作,因为整个字符串'bash -s' -- < ${Command}
在ssh
的参数中给出。事实上,如果您在远程主机上创建名为${Command}
的文件,则会收到错误bash: bash -s: command not found
。
解决方案是使用eval
,如下所示:
eval $TEMP
这确实应该做到了。