シェルスクリプトで配列をfor_each的に回す

bashで回したい。最近はシェルで限界まで処理するようにしている。

ARRAY=(a b c)

for VALUE in "${ARRAY[@]}"
do
  echo "$VALUE"
done

こんなふうな結果が得られます

$ /bin/bash hoge.sh 
a
b
c

なお手元の環境がzshだったりすると

$ sh hoge.sh
hoge.sh: 1: Syntax error: "(" unexpected

こんなことを言われるので注意が必要。

あと、ペアで回すような時はこんな感じでやることが多い。

#!/bin/bash

FROM=(
a
b
c
)

TO=(
foo
bar
baz
)

for INDEX in ${!FROM[@]}
do
  echo ${FROM[INDEX]} ${TO[INDEX]}
done

実行結果は下記のようになる

a foo
b bar
c baz

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA