Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ssh使用参数执行shell脚本_Shell_Ssh - Fatal编程技术网

ssh使用参数执行shell脚本

ssh使用参数执行shell脚本,shell,ssh,Shell,Ssh,我正在对服务器执行ssh,并执行一个shell脚本,如下所示 ssh -o 'StrictHostKeyChecking no' user1@$some_ip_address sh execute_all.sh '/usr/local/bin/ruby /home/user1/run.rb 2>&1 >> /home/user1/run.log' 我的shell文件的内容如下 if [ -z "$1" ] then echo "Please supply

我正在对服务器执行ssh,并执行一个shell脚本,如下所示

ssh -o 'StrictHostKeyChecking no' user1@$some_ip_address  sh execute_all.sh '/usr/local/bin/ruby /home/user1/run.rb 2>&1 >> /home/user1/run.log'
我的shell文件的内容如下

if [ -z "$1" ]
  then
    echo "Please supply the command to be executed"
    exit 1
fi
echo "$1"
COMMAND=$1
eval $COMMAND
if [ $? -eq 0 ]; then
  exit 0
else
  exit 1
fi
当我运行它时,我在日志中得到的只是“/usr/local/bin/node”。我也尝试过$*并且它会打印“/usr/local/bin/ruby/home/user1/run.rb2”。 显然,我的eval命令无法执行


我想在shell脚本中运行我的整个命令。如何做到这一点。

引用要通过SSH运行的命令很棘手,请尝试将整个命令作为单个参数传递,如下所示:

ssh-o'strichostkeychecking no'user1@$some_ip_地址“sh execute_all.sh'/usr/local/bin/ruby/home/user1/run.rb 2>&1>/home/user1/run.log”

请注意新的双引号字符