shell中的0,1与真假

shell中有提到“在shell程序中,0表示真,非0表示假,这一点与C语言恰恰相反。”其实是“判断的最终结果只有两种可能:真(0)或者假(非 0)”。

也就是说,只有判断的结果返回值为0时为真,1为假。这一点尤其不可与C语言的while(1)混为一谈。

判断[ ] :  [ condition ] 为判断符,其中的条件condition为真返回 0,假返回 1

状态码:

每个表达式执行完退出的时候,都会返回一个退出状态码(exit status 0~255),if语句根据 [ ] 表达式执行的退出状态码进行判断,在所有的退出状态码中,0表示执行成功,1~255为退出的状态代号(详见下表)。

所以,与C语言不同的就在这里,shell的if [ 1 ] 中整数 0 1 与C语言中的 while(1)用法并不相通,也就是说整数 0 1 作为退出状态码的时候,确实表示真假,但是并不能作为 if [ ] 的判断条件来用,虽然shell也是弱数据类型的语言。

即:作为条件的退出状态码时,0(成功)表示真,非0表示假

留下评论