pusuke0418’s diary

異常にマルチタスクな社内SEのブログ

BASH shell scriptでの二次元配列(風)

うまい参考がなかったので、下記にメモ。二次元配列風 bash。下記をファイル名fileとして保存

#!/bin/bash

ARRAYS=("a 1" "b 2 3" "ccc 4 5 6")

for ARRAY in "${ARRAYS[@]}"
do
  #echo ARRAY is \" "${ARRAY}" \"
  ARRAY=(`echo ${ARRAY}`)
  for ELEM in "${ARRAY[@]}"
    do
      echo "${ELEM}"
    done
done

結果

~$ bash file
a
1
b
2
3
ccc
4
5
6
~$bash -x file
  1. ARRAYS=("a 1" "b 2 3" "ccc 4 5 6")
  2. for ARRAY in "${ARRAYS[@]}"
  3. ARRAY=(`echo ${ARRAY}`)
    1. echo a 1
  4. for ELEM in "${ARRAY[@]}"
  5. echo a
a
  1. for ELEM in "${ARRAY[@]}"
  2. echo 1
1
  1. for ARRAY in "${ARRAYS[@]}"
  2. ARRAY=(`echo ${ARRAY}`)
    1. echo b 2 3
  3. for ELEM in "${ARRAY[@]}"
  4. echo b
b
  1. for ELEM in "${ARRAY[@]}"
  2. echo 2
2
  1. for ELEM in "${ARRAY[@]}"
  2. echo 3
3
  1. for ARRAY in "${ARRAYS[@]}"
  2. ARRAY=(`echo ${ARRAY}`)
    1. echo ccc 4 5 6
  3. for ELEM in "${ARRAY[@]}"
  4. echo ccc
ccc
  1. for ELEM in "${ARRAY[@]}"
  2. echo 4
4
  1. for ELEM in "${ARRAY[@]}"
  2. echo 5
5
  1. for ELEM in "${ARRAY[@]}"
  2. echo 6
6