2017-04-04 96 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