我不知道为什么下面指出的行返回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
答案 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