为什么((count ++))首次运行返回1退出代码

时间:2016-12-27 16:57:52

标签: bash

我不知道为什么下面指出的行返回1,而((count++))的后续执行返回0。

[me@server ~]$ count=0
[me@server ~]$ echo $?
0
[me@server ~]$ count++
-bash: count++: command not found
[me@server ~]$ (count++)
-bash: count++: command not found
[me@server ~]$ ((count++))
[me@server ~]$ echo $?
1 <------THIS WHY IS IT 1 AND NOT 0??
[me@server ~]$ ((count++))
[me@server ~]$ echo $?
0
[me@server ~]$ ((count++))
[me@server ~]$ echo $?
0
[me@server ~]$ echo $count
3

1 个答案:

答案 0 :(得分:11)

请参阅excerpt页面的help let

  

如果最后一个ARG的计算结果为0,则返回1;返回0       否则。

由于该操作是后续增量((count++)),因此第一次保留0,因此返回1

请注意,预增量((++count))不会发生同样的情况,因为在第一次迭代时,该值设置为1

$ unset count
$ count=0
$ echo $?
0
$ ++count
-bash: ++count: command not found
$ echo $?
127
$ ((++count))
$ echo $?
0