Bash配列の使い方を徹底解説!作成・ループ・追加・削除の実例付きガイド
配列(Array)とは、複数の要素をまとめて管理できるデータ構造です。Bashでは、文字列や数値など、異なる型の要素を1つの配列に混在させて格納することも可能です。
本記事では、Bashにおける配列の作成方法と基本的な使い方を解説します。さらに、ループ処理、要素の出力、配列サイズの取得、内容の変更といった配列操作についても、具体例を交えながら詳しく見ていきましょう。
Bashで配列を作成する方法
Bashで配列を作成するには、主に2つの方法があります。
declareキーワードを使う方法
declare -a my_bash_array
このコマンドを実行すると、「my_bash_array」という名前のインデックス付き配列が作成されます。
代入演算子で配列を初期化する方法
また、代入演算子 = と丸括弧 () を使えば、配列を作成しながら同時に初期化することもできます。
my_bash_array=("apple" "orange" "banana")
あるいは、インデックス番号を明示的に指定して要素を格納する方法もあります。
my_bash_array[0]="apple"
my_bash_array[1]="orange"
my_bash_array[2]="banana"
注意: 代入演算子 = の前後にはスペースを入れないようにしてください。スペースがあるとエラーになります。
Bash配列の要素数を取得する方法
配列の長さ(要素数)を取得するには、${#array_name[@]} という構文を使用します。
以下はその使用例です。
my_bash_array=(foo bar baz)
echo "the array contains ${#my_bash_array[@]} elements"
#出力
the array contains 3 elements
Bash配列をループで処理する方法
配列内のすべての要素を順番に処理したい場合は、forループを使用します。
#!/bin/bash
my_array=(foo bar baz)
# 各要素を順に取り出して処理するforループ
for i in "${my_array[@]}"
do
echo $i
done
実行結果:
foo
bar
baz
すべての要素を一括で出力する方法
ループを使わずに配列の全要素を出力したい場合は、次の構文が便利です。
echo ${my_array[@]}
配列に要素を追加する方法
配列へ新しい要素を追加するには、+= 演算子を使います。この方法では、要素が配列の末尾に追加されます。
以下は使用例です。
my_array=(foo bar)
my_array+=(baz)
echo "${my_array[@]}"
foo bar baz
インデックスを指定して要素を追加することもできます。
my_array=(foo bar)
my_array[2]=baz
echo "${my_array[@]}"
foo bar baz
配列から要素を削除する方法
Bashの配列から特定の要素を削除するには、unset コマンドを使用します。
以下は、インデックス1の要素を削除する例です。
my_array=(foo bar baz)
unset my_array[1]
echo ${my_array[@]}
foo baz
まとめ
本記事では、Bashの配列について解説しました。declareキーワードや代入による配列の作成・初期化の方法に加えて、要素数の取得、forループによる反復処理、要素の出力、そして配列内容の変更・削除まで、一通りの配列操作を学びました。これらのテクニックを活用すれば、シェルスクリプトでのデータ管理がより柔軟かつ効率的になります。
-
rbashとは?実例でわかる制限付きBashシェルの仕組みと使い方
Linuxシェルは、GNU/Linux環境における最も強力で魅力的なツールのひとつです。X Window Systemをはじめとするすべてのアプリケーションはシェルを基盤として動作しており、Linuxシェルを使えばシステム全体を精密に制御できます。しかし一方で、コマンドの影響を理解せずに実行してしまうと、システムに深刻な被害をもたらす危険性も秘めています。 特に初心者ユーザーにとって、誤操作によるトラブルは大きなリスクです。そこで役立つのが「制限付きシェル」です。本記事では、rbash(制限付きBash)の概要から、実際に適用される制限内容、有効化の手順、メリット・デメリットまで詳しく解説しま
-
Bashシェル関数入門:実用的な6つのサンプル例で学ぶチュートリアル
Bashシェル関数とは、複数のUNIX/Linuxコマンドをひとつの名前でグループ化し、後からまとめて実行できるようにする仕組みです。Bashシェル関数は通常のUnixコマンドと同じように呼び出すことができ、現在のシェルコンテキスト内で実行されるため、解釈用の新しいプロセスを生成する必要がありません。bashのエイリアス(alias)と関数はどちらも、長いコマンドや複雑なコマンドに対するショートカットを定義するのに役立ちます。しかし、エイリアスでは制御フローや引数の扱いなど、関数ならではの高度な処理を行うことはできません。本記事では、その違いも含めて詳しく解説していきます。この記事は、進行中の