Bash获取命令的返回值并使用此值退出

时间:2017-05-05 09:56:29

标签: bash

我想执行命令然后获取此命令的返回值。 当它完成后我想退出并退出前一个命令的返回值,即我刚刚执行的命令。我已经有了这段代码,但似乎没有用。

exec gosu user /var/www/bin/phpunit -c app
typeset ret_code
ret_code=$?
if [ $ret_code == 0 ]; then
    exit 0
fi

exit 1

我该怎么办?谢谢

2 个答案:

答案 0 :(得分:4)

我认为您的问题是typeset本身会创建一个返回值0.尝试

gosu user /var/www/bin/phpunit -c app
ret_code=$?
return $ret_code

答案 1 :(得分:1)

知道已经有一段时间了,但是这里更多的是一个班轮。

像这样...

if [ $(gosu user /var/www/bin/phpunit -c app;echo $?) ]; then
    exit 0
fi

exit 1

或更短...

return $(gosu user /var/www/bin/phpunit -c app;echo $?)