ssh使用参数执行shell脚本
我正在对服务器执行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 -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” 请注意新的双引号字符