我正在尝试学习从PHP代码中执行shell脚本。所以,我做了一个测试程序来从PHP中执行一个bash脚本。但是,它没有任何效果。相关代码如下所示。
<?php
.......
shell_exec('/bin/bash /var/www/html/just_touch.sh');
?>
just_touch.sh
脚本只会创建一个新文件,如下所示。
touch /home/user/some.txt
我希望在执行后有文件/home/user/some.txt
,但不,它不会被制作。我在做什么错误?
P.S:以下代码有效。
$output = shell_exec('ls /home/user');
echo $output;
这与权限有关吗?
此外,我注意到,虽然这打印了#34;你能看到我吗?&#34;。
$output = shell_exec('echo Can you see me?');
echo $output;
这不是!
shell_exec('echo Can you see me?')
这里发生了什么?
答案 0 :(得分:1)
shell_exec
时,Stderr 会丢失。你可能不会使用:
shell_exec('/bin/bash /var/www/html/just_touch.sh 2>&1');