2017-04-04 73 views
0

我看到这个符号在bash:

a=${b[c--]} 

,或者也

a[++b]=$c 

或周围的其他方法:

a[b++]=$c 

但如果我在命令行上执行它没有任何反应。

[email protected]:~ $ a[++b]=2 
[email protected]:~ $ echo ${a[++b]} 

[email protected]:~ $ 

这个符号的用法是什么?

编辑:

我在问这个表示法。正如我所看到的那样,这是一个变量,因为前面有$。但是++确实让我想起增量,所以我很困惑。这是某种可变增量吗?

+0

你在问什么,数组表示法或前/后缀增量? – chepner

回答

3

c--是一个算术表达式,它的意思是“返回值c,然后减1”。 ${b[n]}表示数组b(其中第一个元素具有索引0)的第n个元素。在方括号中的表达式被解释为算术(与像*@'1'等一些例外)让我们试一下:

b=(x y z) 
c=2 
a=${b[c--]} 
echo $a $c # Outputs: z 1 

所以c--回报2,但设置c为1 b[2],即z,是然后分配到a

++c类似于c--,但它返回它的价值前加1 c

+1

@azbc请注意,在命令行执行'echo $ {a [++ b]}'时看不到任何东西与'++ b'是一个尚未分配的数组索引相关。 – Fred