执行shell脚本代码取决于php的返回值

时间:2016-10-25 13:29:35

标签: php bash shell

我在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脚本时,成功为空。

1 个答案:

答案 0 :(得分:1)

PHP的return语句不会向STDOUT发送任何输出,这是您要使用$()构造捕获的内容。要查看命令的退出值,请在PHP和the exit statement中使用shell's $? variable。也许这就是你要找的东西?

<?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

不需要在脚本调用中包含当前工作目录。 (此外,您可以使脚本可执行并直接调用它!)