8 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
Run Code Online (Sandbox Code Playgroud)
Ini*_*ian 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
Run Code Online (Sandbox Code Playgroud)