如果[[$?-ne 0]]; 意思是.ksh

Rah*_*ant 11 unix linux bash ksh

我有一段代码,说如果一切都执行了邮件,如果它失败了邮件给那个人带有错误信息.

if [[ $? -ne 0 ]]; then
  mailx -s" could not PreProcess files" xyz@abcd.com
else            
  mailx -s" PreProcessed files" xyz@abcd.com
fi
done
Run Code Online (Sandbox Code Playgroud)

我是linux编码的新手我想了解是什么if [[ $? -ne 0 ]];意思

bis*_*hop 17

打破它,简单的术语:

[[ and ]]
Run Code Online (Sandbox Code Playgroud)

......表示正在进行真实性测试.

$?
Run Code Online (Sandbox Code Playgroud)

...是一个保存最后一次运行命令的退出代码的变量.

-ne 0
Run Code Online (Sandbox Code Playgroud)

...检查左边的东西($?)是否"不等于"为"零".在UNIX中,以零为退出的命令成功,而具有任何其他值(1,2,3 ......最多255)的退出是失败.


anu*_*ava 6

if [[ $? -ne 0 ]]; 
Run Code Online (Sandbox Code Playgroud)

正在检查前一个if if条件的返回代码.

  • $? 表示返回代码
  • $? -ne 0 表示上一个命令返回错误,因为0被视为成功

  • 我想补充一点 -ne 代表“不等于” (2认同)