メモの日々


2017年05月31日(水) [長年日記]

[shell] Bashで配列

Bashでは

a=(a b c d e)

のように()を使うと配列を生成することができる。

要素の参照

echo ${a[0]}      #=> a
echo ${a[1]}      #=> b
echo ${a[-1]}     #=> e
echo ${a[@]}      #=> a b c d e
echo ${a[@]:2}    #=> c d e
echo ${a[@]:2:2}  #=> c d

要素数とインデックスの参照

echo ${#a[@]}     #=> 5
echo ${!a[@]}     #=> 0 1 2 3 4

要素の追加と削除

a+=(hello)   && echo ${a[@]}  #=> a b c d e hello
a[100]=world && echo ${a[@]}  #=> a b c d e hello world
unset a[2]   && echo ${a[@]}  #=> a b d e hello world
echo ${!a[@]}                 #=> 0 1 3 4 5 100

[shell] Bashで計算

Bashは算術式展開を使うと簡単な計算ができる。

echo $((1 + 1))           #=> 2
echo $((2 ** 3))          #=> 8
i=10 && echo $((i % 4))   #=> 2

[shell] Bashで乱数

Bashのシェル変数にはRANDOMという変数があり、これを参照すると0~32767のランダムな整数を得られる。

$ for n in {1..10}; do echo $RANDOM; done
12349
4092
31967
6007
10451
27446
25349
2318
12177
23783