在bash我可以用$?获得最后一个Command的返回码。 填写变量如下所示,这不起作用:
VARIABLE=`echo "My great Text"`
返回代码总是0。 如何获得命令的返回码?
答案 0 :(得分:1)
您的代码已经完成了您的要求。为了查看它,您只需要在评论中提及post.php
替换为echo
,或者使用其他可以返回非零状态的命令。 script.sh
将设置为用于变量赋值的子shell的退出状态。
例如,这正确地报告$?
为1:
$?
同样,这会报告FOO=`echo "My great Text" ; false` ; echo $?
为0:
$?
答案 1 :(得分:0)
示例中的VARIABLE将获得命令的输出
echo $ VARIABLE
我的精彩文字
您需要在使用$?
之后获取结果值 echo
将始终返回0,因为没有理由在此处失败。
一般情况下,您检查状态如下:
output=`script.sh`
retval="$?"
echo "Script output is: " $output
echo "Script return value is: " $retval
http://mywiki.wooledge.org/BashFAQ/002
注意,如果您使用exit <code>
,这将读取脚本的返回值(我相信是这种情况)。如果返回值是脚本的输出,
应该使用RETVAL =`script.sh'
(但它本身不是返回值)
答案 2 :(得分:0)
参见下一个例子:
serga@XXX:~$ false
serga@XXX:~$ v="My great text $?"
serga@XXX:~$ echo $v
My great text 1
serga@XXX:~$ true
serga@XXX:~$ v="My great text $?"
serga@XXX:~$ echo $v
My great text 0
答案 3 :(得分:0)
抱歉,问题是,Command没有返回正确的值:-( 感谢您的支持。