1

我写了这个简单的 shell 脚本:

#!/bin/sh
STORAGE_PATH=/tmp/;
export STORAGE_PATH;
cd STORAGE_PATH;
perl /{SOME_PATH}/perl-script.pl;

当我从 shell 调用它时,它可以按预期完美运行。但是从 PHP 中它无限挂起,并且在调试时,我发现它在 Perl 执行期间挂起,这实际上没有任何意义,因为如果它在 shell 中调用它会继续。

我对shebang有什么误解#!/bin/sh吗?我也试过#!/bin/bash了。

我尝试了 php: exec, system,的所有变体shell_execcallthru但没有任何效果..

我错过了什么?

4

1 回答 1

0

好吧,我看不出它在 shell 中是如何工作的。

您正在调用,但未定义/{SOME_PATH}/perl-script.pl变量。SOME_PATH你的意思是STORAGE_PATH?另外,您忘记了$之前的{.

当您使用它时,请检查运行网络服务器的用户是否有权执行这两个脚本。

于 2013-03-20T18:10:17.077 回答