0

I have PHP file which has logic based on which I run either

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

or

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

when Im doing

#!/bin/bash

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

Nothing happens but when I paste the command to sh file it works.

Why I can't I execute a command which is generated by a PHP script?

Edit:

Solution

eval $COMMAND
1
  • Is PHP in your $PATH?
    – Jay
    Aug 27 '15 at 13:32
0

By COMMAND=$(php travis_groups.php) you just assign the command to COMMAND variable. If you want to run the command, you need to add $COMMAND after the assignment.


Simple example setup:

echo.sh file containing just line echo "ls"

run_echoed.sh file containing two lines:

COMMAND=$(bash echo.sh)
$COMMAND

When you run run_echoed.sh (either by ./run_echoed.sh if the file is executable or bash run_echoed.sh), you print the directory contents (the ls command gets executed).

Of course make sure your php travis_groups.php actually prints out the commands (just run in the terminal). Otherwise you can't tell the other script what to assign to the variable.

2
  • Please look at my post I have add missing code Aug 27 '15 at 13:41
  • So, to make it clear after your edit: echo $COMMAND returns the command all right, but running $COMMAND does nothing? Also, the line echo $COMMAND //bin/phpunit -c Application/app --testsuite $TESTSUITE is the actual line in your script?
    – Adalee
    Aug 27 '15 at 13:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.