我正在通过SSH直接传递以下命令:
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /key/path server@111.111.111.111 'bash -s' << EOF
FPM_EXISTS=`ps aux | grep php-fpm`
if [ ! -z "$FPM_EXISTS" ]
then
echo "" | sudo -S service php5-fpm reload
fi
EOF
I get the following error:
[2015-02-25 22:45:23] local.INFO: bash: line 1: syntax error near unexpected token `('
bash: line 1: ` FPM_EXISTS=root 2378 0.0 0.9 342792 18692 ? Ss 17:41 0:04 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
它的行为类似于尝试执行ps aux | grep php-fpm
命令的输出,而不仅仅是捕获变量。因此,如果我尝试将命令更改为尝试捕获ls
,它会像尝试执行那个命令一样,当然会针对每个目录返回"command not found"。
如果我将Bash脚本的内容粘贴到文件中并运行它,它就可以正常工作;但是,我似乎无法弄清楚如何通过SSH传递它。
有什么想法吗?