user264953
user264953

Reputation: 1967

Calling a shellscript from php - not working correctly

I am calling a shellscript from php using shell_exec() command. Following is the simple version of the shell script:

args[0] = "tom"
echo "hello"
echo "${args[0]}"

When I run this script from terminal, it gives the following output in terminal:

hello
tom

Whereas when I call this from php using shell_exec() only "hello" is printed and not "tom" . ie; variable assignment is not working when the script is called from php. Why this happens and how can I resolve this.

Any help is appreciated.

Upvotes: 0

Views: 60

Answers (2)

Hereblur
Hereblur

Reputation: 2174

First, args[0] = "tom" should not have space. It should be args[0]="tom" (I'm not sure is this the problem, but worth to try).

Try this at the end of your code, to see which shell is running your script.

echo "`ps -p $$`"

Try both on terminal and PHP scripts to see if it same shell or not.

Upvotes: 0

tripleee
tripleee

Reputation: 189830

Probably PHP executes the script with sh, not Bash; thus arrays (which are a Bash feature) are not supported by the shell.

Workarounds: don't use arrays, or explicitly inboke Bash on the script. (If PHP understands shebangs, having a correct shebang line as the first line of the script may well be sufficient.)

Upvotes: 1

Related Questions