我正在尝试从php函数shell_exec()
运行一个sh脚本文件,但每次返回都不正确。
这是sh文件内容:
if [[ -z $1 ]]
then
echo "svn st: NULL"
else
command=$(ssh -q USER@IP_OF_THE_REMOTE_NODE "svn st $1")
if [[ -z $command ]]
then
test="svn st: OK"
else
test="svn st: KO"
fi
echo $test
fi
每次我从shell运行这个sh脚本时,回声总是正确的。 “$ 1”包含我必须检查的工作目录。
但是如果我以这种方式运行相同的脚本:
$w_path = $working_path['path'];
$com = "sh /tmp/my_script_test.sh $w_path";
echo "content com ".$com;
$res = shell_exec($com);
echo "content res ".$res;
最后的回声打印总是“svn st:OK”,这对某些$w_path
来说是正确的,但对其他人来说完全不正确!为什么?我怎么能找到错误?
我不认为这是一个ssh密钥问题,因为我使用指南来解决这个问题,现在我不需要为远程服务器插入密码。
由于 问候
答案 0 :(得分:2)
更改
command=$(ssh -q USER@IP_OF_THE_REMOTE_NODE "svn st $1")
if [[ -z $command ]]
到
if ssh -q USER@IP_OF_THE_REMOTE_NODE "svn st $1"
并记住:每当某些东西不起作用时,都是因为它太复杂了(无法回想起我读到的地方)。