У меня есть файл PHP, который имеет логику, на которой я запускаю

bin/phpunit -c Application/app --testsuite $TESTSUITE

или же

bin/phpunit -c Application/app --group group1 group2

когда я делаю

#!/bin/bash

COMMAND=$(php travis_groups.php)
echo $COMMAND //bin/phpunit -c Application/app --testsuite $TESTSUITE
$COMMAND

Ничего не происходит, но когда я вставляю команду в файл sh, она работает.

Почему я не могу выполнить команду, сгенерированную PHP-скриптом?

Редактировать:

Решение

eval $COMMAND

1 ответ1

0

По COMMAND=$(php travis_groups.php) вы просто назначаете команду переменной COMMAND . Если вы хотите выполнить команду, вам нужно добавить $COMMAND после назначения.


Простой пример настройки:

файл echo.sh содержащий только строку echo "ls"

Файл run_echoed.sh содержащий две строки:

COMMAND=$(bash echo.sh)
$COMMAND

Когда вы запускаете run_echoed.sh (либо с помощью ./run_echoed.sh если файл исполняемый, либо bash run_echoed.sh), вы печатаете содержимое каталога (выполняется команда ls).

Конечно, убедитесь, что ваш php travis_groups.php действительно распечатывает команды (просто запустите в терминале). В противном случае вы не сможете указать другому сценарию, что назначать переменной.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .