Bash:Last Returncode填充变量

时间:2015-10-22 08:57:57

标签: bash variables return-value

在bash我可以用$?获得最后一个Command的返回码。 填写变量如下所示,这不起作用:

VARIABLE=`echo "My great Text"`

返回代码总是0。 如何获得命令的返回码?

4 个答案:

答案 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没有返回正确的值:-( 感谢您的支持。