PHP Command en script tiene resultados diferentes a shell - php, bash, shell

Tengo las siguientes líneas en un script de BASH:

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

printf -v ACTIONS_CMD "$ACTIONS_COMMAND" $FOLDER

$ACTIONS_CMD

Esto se ejecuta dentro de un ciclo para hacer la misma operación en varias aplicaciones de Android. Cuando hago eco del $ACTIONS_CMD y copiar y pegar el comando, produce el resultado correcto, pero el script en sí inicia PHP, pero no copia el STDIN. Lo sé porque PHP se cuelga hasta que presiono Ctrl-D en el teclado y luego se queja de que no hubo entrada.

Traté de cambiar el comando de PHP a

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

Cuando el primer nombre de archivo está entre comillas (que creo que debería ser por seguridad), obtengo

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 ...

y sin las comillas, simplemente sale a la ventana de la terminal.

Si es importante, es GNU bash, version 3.2.51(1)-release (x86_64-apple-darwin13).

Respuestas

1 para la respuesta № 1

No puede ejecutar programas con la redirección de entrada / salida en una cadena como esa. Intentará usar los caracteres de tubería y ángulo y el archivo como entrada al programa que ejecutó.

Necesita pasar esa cadena a un shell para hacer la redirección.

Una forma de hacerlo es:

bash -c "$ACTIONS_COMMAND"

Menú