シェルプログラミング - 配列
$ 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
この記事が気に入ったらサポートをしてみませんか?