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 キーの問題ではないと思います。ガイドを使用して解決したため、リモート サーバーのパスワードを挿入する必要がなくなりました。
ありがとうございます。それでは、お元気で