我正在尝试在我的MacOSX上运行shell脚本,但它无效。 我的report.sh文件调用另一个存储在/ usr / local / bin中的.sh文件(Sweave.sh)。
<?php
shell_exec("./report.sh");
echo "Hello 123";
?>
它在我的浏览器上打印'Hello 123',但是report.sh没有做它的工作。 为什么会这样?这是report.sh:
# !/bin/bash
Sweave.sh -ld test_sweave.Rnw
如果从终端呼叫./report.sh,它可以正常运行...感谢您的帮助!
编辑:如果我从终端拨打./report.php,它会说:
./report.php: line 2: ?php: No such file or directory
./report.php: line 4: syntax error near unexpected token `"./report.sh"'
./report.php: line 4: `shell_exec("./report.sh");'
答案 0 :(得分:2)
如果要通过命令行运行脚本,则必须:
a)用这一行
启动文件#!/path/to/php
b)运行:
php report.php
如果可行,可能是由于权限,因为您的网络服务器在与您不同的用户下运行。
答案 1 :(得分:1)
感谢大家的评论,这是一个权限问题。 我通过更改服务器的“Documents”文件夹的权限来解决它(我确定这不是最安全的方式,但我只是在测试)。
只需添加rw访问权限,成为所有者并应用于随附的项目 - 就是这样!
答案 2 :(得分:0)
php -q report.php
无法使用shebang(#!/path/to/php
)