执行 PHP 脚本生成的命令

执行 PHP 脚本生成的命令

我有一个 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

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确实打印出了命令(只需在终端中运行)。否则您无法告诉其他脚本要将什么分配给变量。

相关内容