見出し画像

シェルプログラミング - 配列

$ bash -version | head -n 1
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)

配列、for文での処理

#!/bin/bash
LIST=("AAA" "BBB" "CCC")

echo ${LIST[@]} #AAA BBB CCC
echo ${VAL} # AAA <- 先頭要素のみ取得される
echo ${LIST[0]} # AAA
echo ${LIST[1]} # BBB
echo ${LIST[2]} # CCC

# 1つづつ取得して処理する場合
for VAL in ${LIST[@]}
do 
  echo ${VAL}
done

for in を使わない場合は、配列の要素数を調べて回します。

配列の要素数の取得は「${#LIST[@]}」、配列は「${LIST[@]}」なので「#」を追加すると要素数が取得できるんですね。

LIST=("AAA" "BBB" "CCC")
CNT=${#LIST[@]}
LIST=("AAA" "BBB" "CCC")

echo ${LIST[@]}
for VAL in ${LIST[@]}
do
    echo ${VAL}
done

echo "LIST NUM="${#LIST[@]} # 配列の要素数が取得できます。
for (( i = 0; i < ${#LIST[@]}; ++i ))
do
    echo ${LIST[$i]}
done

lsと組み合わせた場合、カレントフォルダのファイル名の一覧を取得して表示します。
ファイル名が取れるのでこれで、ファイルに対して処理ができます。

注意 「LIST=(`ls -a *.txt`)」、「'」じゃないよ

#!/bin/bash
LIST=(`ls -a *.txt`)

echo ${LIST[@]}

# 1つづつ取得して処理する場合
for VAL in ${LIST[@]}
do 
  echo ${VAL}
done

この記事が気に入ったらサポートをしてみませんか?