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, Знам това, защото PHP виси, докато натисна 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

Не можете да изпълнявате програми с пренасочване на вход / изход в низ като този. Той ще се опита да използва символите на тръбите и ъгъла и файла като вход за изпълняваната от вас програма.

Трябва да предадете този низ на черупка, за да извършите пренасочването.

Един от начините да направите това е:

bash -c "$ACTIONS_COMMAND"

Свързани въпроси
Най - известен