配列の基本的な使い方

配列の宣言

code
arr[0]=りんご
arr[1]=みかん
arr[2]=バナナ
echo "arr=${arr[*]}"
stdout
arr=りんご みかん バナナ
code
arr=(りんご みかん バナナ)
echo "arr=${arr[*]}"
stdout
arr=りんご みかん バナナ
code
declare -a arr

arr[0]=りんご
arr[1]=みかん
arr[2]=バナナ

echo "arr=${arr[*]}"
stdout
arr=りんご みかん バナナ
code
declare -a arr=(りんご みかん バナナ)
echo "arr=${arr[*]}"
stdout
arr=りんご みかん バナナ

配列の要素の設定・追加・削除

code
# 配列の宣言
arr=()
echo "arr=${arr[*]}"

# 配列に要素を設定
arr[0]=りんご
echo "arr=${arr[*]}"

# 配列に要素を設定
arr[2]=みかん
echo "arr=${arr[*]}"

# 配列の要素数
echo "size=${#arr[*]}"

# 配列の要素のインデックス
echo "indexs=${!arr[*]}"
stdout
arr=
arr=りんご
arr=りんご みかん
size=2
indexs=0 2
code
# 配列の宣言
arr=()
echo "arr=${arr[*]}"

# 配列に要素を追加
arr+=(りんご)
echo "arr=${arr[*]}"

# 配列に要素を追加
arr+=(みかん バナナ)
echo "arr=${arr[*]}"

# 配列の要素数
echo "size=${#arr[*]}"

# 配列の要素のインデックス
echo "indexs=${!arr[*]}"
stdout
arr=
arr=りんご
arr=りんご みかん バナナ
size=3
indexs=0 1 2
code
# 配列の宣言
arr=(りんご みかん バナナ)
echo "arr=${arr[*]}"

# 配列の要素の削除
unset 'arr[0]'
echo "arr=${arr[*]}"

# 配列の要素数
echo "size=${#arr[*]}"

# 配列の要素のインデックス
echo "indexs=${!arr[*]}"
stdout
arr=りんご みかん バナナ
arr=みかん バナナ
size=2
indexs=1 2

配列のループ

code
arr=(りんご みかん バナナ)

# 配列の要素をループ
for val in "${arr[@]}"; do
  echo "${val}"
done
stdout
りんご
みかん
バナナ
code
arr=(りんご みかん バナナ)

# 配列のインデックスをループ
for i in "${!arr[@]}"; do
  echo "arr[$i]=${arr[i]}"
done
stdout
arr[0]=りんご
arr[1]=みかん
arr[2]=バナナ

配列のコピー

code
arr1=(りんご みかん バナナ)
arr2=("${arr1[@]}")

echo '--- 変更前 ---'
echo "arr1=${arr1[*]}"
echo "arr2=${arr2[*]}"

# arr1, arr2 それぞれ値を変更
arr1[1]=すいか
arr2[1]=メロン

echo '--- 変更後 ---'
echo "arr1=${arr1[*]}"
echo "arr2=${arr2[*]}"
stdout
--- 変更前 ---
arr1=りんご みかん バナナ
arr2=りんご みかん バナナ
--- 変更後 ---
arr1=りんご すいか バナナ
arr2=りんご メロン バナナ