シェルスクリプトは、簡単なタスクの自動化から複雑な処理まで幅広く対応できる強力なツールです。その中でも、配列を扱うことでデータの管理がより効率的になります。
本記事では、シェルスクリプトで配列を作成し、操作する方法について詳しく説明します。
シェルスクリプトでは、配列は非常にシンプルに定義できます。Bashを例に説明します。
一次元配列を作成するには、()を使います。例えば、以下のように定義できます。配列のインデックスは0から始まります。
#!/bin/bash
# 配列の定義
array=("one" "two" "three")
# 配列の要素にアクセス
echo ${array[0]} # 出力: one
echo ${array[1]} # 出力: two
配列のサイズを取得するには、${#array_name[@]}構文を使用します。
#!/bin/bash
array=("one" "two" "three")
# 配列のサイズを取得
size=${#array[@]}
echo "配列のサイズ: $size" # 出力: 配列のサイズ: 3
配列に要素を追加するには、+=を使います。
#!/bin/bash
array=("one" "two" "three")
# 要素の追加
array+=("four")
echo ${array[@]} # 出力: one two three four
要素を削除するには、unsetを使用します。
#!/bin/bash
array=("one" "two" "three")
# 要素の削除
unset array[1]
echo ${array[@]} # 出力: one three
echo ${array[1]}
ただし、削除後、配列のインデックスはそのままになります(削除されたところが詰められたりするわけではありません)。
そのため「echo ${array[1]}」でインデックス1の要素を表示しても、中身は空白となっており何も出力されません。
#!/bin/bash
array=("one" "two" "three")
# 配列のループ処理
for array in "${array[@]}"; do
echo $array
done
配列の一部を取得するには以下のようにします。
#!/bin/bash
array=("one" "two" "three" "four")
# 配列の一部の情報を取得
slice=("${array[@]:1:2}") # インデックス1から2の要素を取得
echo ${slice[@]} # 出力: two three
二つの配列を、一つの配列に結合させることもできます。
#!/bin/bash
array1=("one" "two")
array2=("three" "four" "five")
# 配列の結合
combined=("${array1[@]}" "${array2[@]}")
echo ${combined[@]} # 出力: one two three four five
シェルスクリプトでの配列操作をマスターすることで、より高度なスクリプトを作成することができます。
シェルスクリプトの配列機能を駆使して、様々な自動化タスクを効率よく処理してみましょう!