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

この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;

最後の echo print は常に "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 に答える