0

我正在尝试从 php 函数运行 sh 脚本文件,shell_exec()但每次返回都不正确。

这是 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 密钥问题,因为我使用了一个指南来解决这个问题,现在我不需要为远程服务器插入密码。

感谢和问候

4

1 回答 1

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"

并记住:每当某些事情不起作用时,那是因为它太复杂了(不记得我在哪里读到的)。

于 2013-08-28T08:09:42.603 回答