我没有那么多的PHP知识,我需要运行一个依赖于PHP返回值的脚本。
脚本presentDir=`pwd`
success=$(php -f $presentDir/optimize.php $file)
echo echo "value:".$success
PHP代码<?php
try{
//code
} catch(Exception $e){
return 1
}
return 0
执行以上shell脚本时,success为空
PHP的return
语句不发送任何输出到STDOUT,这是您将与$()
结构捕获的。要查看命令的退出值,可以使用PHP中的exit
语句和shell的$?
变量。也许这就是你要找的?
<?php
try {
//code
} catch(Exception $e){
exit(1);
}
exit(0);
?>
紧随其后:
#!/bin/sh
php -f optimize.php "$file"
printf "PHP script returned %d" $?
# or you could just use if:
if php -f optimize.php "$file"; then
do_stuff
fi
不需要在脚本调用中包含当前工作目录。(更进一步,您可以使脚本可执行并直接调用它!)