目次

配列を作成する

シェルで配列変数を明示的に宣言するには、前回の「シェルで整数型の変数を扱う」と同じく declare を使います。

配列の場合は -a オプションになります。

declare -a list

もちろん、明示的に宣言しなくても、配列の値を代入すれば問題ありません。

実際に変数に値を入れてみます。

declare -a list_1

# 空の配列を作成
list_1=()

# 明示的に配列の宣言をせずに空の配列を作成
list_2=()

list_1=(a b c)
list_2=(x y z)

# それぞれの配列の先頭を表示
echo ${list_1[0]}
echo ${list_2[0]}

結果は以下の通りです。

a
x

配列の要素数を取得する

配列の要素数を取得したい場面も出てくると思いますが、その場合はループや何かの関数を使わなくても、以下の書き方で取得ができます。

list_1=(a b c)

echo ${#list_1[@]}

結果は以下の通りです。

3

配列の要素の削除

配列の要素の削除は unset を使います。

list_1=(a b c)

unset list_1[2]

echo ${#list_1[@]}
echo ${list_1[2]}

確認すると要素数は 3 のままですが、3 番目の値は未設定となっています。

3

配列のすべての要素を表示する

デバッグの時など、要素数以外にも配列の中身全部を表示させたい時があると思います。

その場合は、以下の書き方で取得ができます。

list_1=(a b c)

echo ${list_1[@]}

確認すると、配列の値が表示されます。

a b c

配列は他にもいろいろな書き方ができますが、基本的な操作については他の言語と似たような感じで使えます。

ちなみに、冒頭で書いたループを配列に置き換えると以下のように書けます。

list_1=(a b c)

for l in ${list_1[@]}; do
    echo ${l}
done

Tips記事一覧

新着記事一覧です。

関連記事一覧

「シェルで配列の変数を使ってループ処理する方法」に関連した記事一覧です。

TOP