スクリプト内のPHPコマンドは、shell-php、bash、shellとは異なる結果を示します。

BASHスクリプトには次の行があります:

ACTIONS_COMMAND="php -f $BASEDIR/scripts/activities.php < "$SRC_DIR/%s/AndroidManifest.xml""

printf -v ACTIONS_CMD "$ACTIONS_COMMAND" $FOLDER

$ACTIONS_CMD

これはループ内で実行され、複数のAndroidアプリケーションに対して同じ操作を実行します。 私が $ACTIONS_CMD コマンドをコピー&ペーストすると正しい出力が得られますが、スクリプト自体はPHPを起動しますが、 STDIN。私はこれを知っている。 Ctrl-D それからキーボードに入力がなかったと文句を言う。

私はPHPのコマンドを切り替えてみました

ACTIONS_COMMAND="cat "$SRC_DIR/%s/AndroidManifest.xml" | php -f $BASEDIR/scripts/activities.php"

最初のファイル名が引用符で囲まれている場合(私はそれが安全のためにあるべきだと思います)、私は

cat: "apps/app_name/AndroidManifest.xml": No such file or directory
cat: |: No such file or directory
cat: php: No such file or directory
cat: -f: No such file or directory
<?php
... REST OF PHP SCRIPT ...

引用符を付けずに、端末ウィンドウに出力するだけです。

それが重要であれば、それは GNU bash, version 3.2.51(1)-release (x86_64-apple-darwin13)

回答:

回答№1は1

そのような文字列で入出力リダイレクトを持つプログラムを実行することはできません。実行したプログラムへの入力としてパイプと角度の文字とファイルを使用しようとします。

リダイレクションを行うには、その文字列をシェルに渡す必要があります。

これを行う1つの方法は次のとおりです。

bash -c "$ACTIONS_COMMAND"

関連する質問
最も人気のある