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