我的ubuntu服务器上的php-shell_exec没有运行该命令!为什么会这样


php shell_exec on my ubuntu server does not run the command! why is that so?

这让我抓狂。经过大量测试,我成功地在终端中运行了下面的.sh文件,它运行得很好,正如我所期望的那样。

adt -package -target apk -storetype pkcs12 -keystore $AND_CERT_FILE -storepass $AND_CERT_PASS "$OUTPUT" "$APP_XML" -C bin . -C icons/android . -extdir lib .
echo "DONE";

我想从PHP而不是终端运行它,所以我用PHP编写了以下内容来调用.sh文件,但尽管PHP返回了"DONE"消息,但该命令不起作用。如果我键入错误的命令,则不会显示任何错误。以下是我用PHP写的:

$output = shell_exec("./test.sh");
echo $output;

有人有什么想法吗?

不能将选项与非选项参数混合使用。

正确的格式是:

command [-options ...] [--] [non-option arguments]

任何不以-开头的单词都将结束选项处理,裸--(可选)也是如此。之后的所有参数都不会作为选项处理。

参数"$OUTPUT""$APP_XML"位于行的末尾,或者缺少adt的正确选项前缀(我将其作为练习)。

adt -package -target apk -storetype pkcs12 '
    -keystore $AND_CERT_FILE '
    -storepass $AND_CERT_PASS '
    -C bin . '
    -C icons/android . '
    -extdir lib . '
    "$OUTPUT" "$APP_XML"

请注意,我提交了对原始代码的编辑,其中一行在这里被分解。在编辑之前,我一无所知。在添加CCD_ 8和CCD_,这个问题变得显而易见。

看看这个adt包装疑难解答博客条目。这似乎证实了我的怀疑。博主明确警告最后指定任何文件名。