-1

これは私を夢中にさせています。多くのテストの後.sh、ターミナルで次のファイルを正常に実行することができ、期待どおりに完全に機能しました。

adt -package -target apk -storetype pkcs12 -keystore $AND_CERT_FILE -storepass $AND_CERT_PASS "$OUTPUT" "$APP_XML" -C bin . -C icons/android . -extdir lib .

echo "DONE";

これを端末ではなくPHPから実行したいので、PHPで以下のように書いて.shファイルを呼び出したのですが、PHPは「DONE」メッセージを返したのにコマンドが動きません。コマンドを間違って入力しても、エラーは表示されません。ここに私がPHPで書いたものがあります:

$output = shell_exec("./test.sh");
echo $output;

誰にもアイデアはありますか?

4

1 に答える 1

0

オプションとオプション以外の引数を混在させることはできません。

適切な形式は次のとおりです。

command [-options ...] [--] [non-option arguments]

で始まらない単語は-オプション処理を終了し、ベア--(オプション) も同様です。それ以降のすべての引数は、オプションとして処理されません。

引数"$OUTPUT""$APP_XML" が行末にあるか、適切なオプション接頭辞 for がありませadtん (これは演習として残します)。

adt -package -target apk -storetype pkcs12 \
    -keystore $AND_CERT_FILE \
    -storepass $AND_CERT_PASS \
    -C bin . \
    -C icons/android . \
    -extdir lib . \
    "$OUTPUT" "$APP_XML"

ここで行を分割して元のコードの編集を送信したことに注意してください。編集する前は、まったく手がかりがありませんでした。ペアを追加している\ newlineうちに、問題が明らかになりました。

このadt パッケージのトラブルシューティングに関するブログ エントリをご覧ください。私の疑念を裏付けているようです。ブロガーは、ファイル名を最後に指定するように明示的に警告しています。

于 2012-08-05T12:41:04.560 に答える