我在PHP中没有那么多知识,我需要运行一个取决于PHP返回值的脚本。
presentDir=`pwd`
success=$(php -f $presentDir/optimize.php $file)
echo echo "value:".$success
<?php
try{
//code
} catch(Exception $e){
return 1
}
return 0
执行上述shell脚本时,成功为空。
答案 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
不需要在脚本调用中包含当前工作目录。 (此外,您可以使脚本可执行并直接调用它!)