この章では、Bash シェルスクリプトで配列を使用する方法について説明します。要素の追加、要素の削除、配列の長さの取得について説明します。
このシリーズの以前のパートでは、変数について学びました。変数には一つの値を入れることができます。
配列はその中に複数の値を持つことができます。そのため、複数の変数を一度に扱う必要がある場合に便利です。個々の値を新しい変数に格納する必要はありません。
したがって、このように5つの変数を宣言してはいけません:
distro1=Ubuntudistro2=Fedoradistro3=SUSEdistro4=Arch Linuxdistro5=Nix
これらすべてを1つの配列で初期化することができます:
distros=(Ubuntu Fedora SUSE "Arch Linux" Nix)
他のプログラミング言語とは異なり、配列要素の区切り文字としてカンマを使用することはありません。
なかなかいいですね。配列の要素にアクセスする方法を見てみましょう。
Bashでの配列要素へのアクセス
インデックスを使った配列要素へのアクセスインデックス N の配列要素にアクセスするには、次のようにします:
${array_name[N]}
他の多くのプログラミング言語と同様、Bash Shellの配列はインデックス0から始まります。つまり、最初の要素のインデックスが0、2番目の要素のインデックスが1、n番目の要素のインデックスがn-1です。
ですから、SUSEを印刷したい場合は、次のようにします:
echo ${distros[2]}
や}の後にスペースを入れることはできません。
${ array[n] }ような使い方はできません。
一度にすべての配列要素にアクセス
配列のすべての要素を表示したいとします。
一つずつ使うこともできますが、その必要はありません echo ${array[n]} もっと簡単な方法があります:
${array[*]}
これで配列の全要素が得られます。
Bashで配列の長さを取得
配列の要素数を知るには? Bashで配列の長さを知るには特別な方法があります:
${#array_name[@]}
簡単でしょう?
Bashでの配列要素の追加
配列に要素を追加する必要がある場合は、+= 演算子を 使用して、Bash で既存の配列に要素を追加します:
array_name+=("new_value")
これがその例です:
要素を追加するときは()を使うことが重要です。
また、インデックスを使って任意の位置に要素を設定することもできます。
array_name[N]=new_value
ただし、正しいインデックス番号を使用することを忘れないでください。 既存のインデックスに使用すると、新しい値がその要素を置き換えます。
範囲外」のインデックスを使用した場合でも、その値は最後の要素の後に追加されます。たとえば、配列の長さが 6 でインデックス 9 に新しい値を設定しようとした場合、その値は最後の要素である 7 の位置に追加されます。
配列要素の削除
Shell の組み込みの unset を使用すると、インデックス番号を指定して配列の要素を削除できます:
unset array_name[N]
配列の4番目の要素を削除した例です。
配列全体を削除することもできます:
unset array_name
Bashには厳密なデータ型の規則はありません。整数でも文字列でも配列を作ることができます。
演習時間
Bash配列について学んだことを実践してみましょう。
エクササイズ1:ベスト5のLinuxディストリビューションの配列を含むBashスクリプトを作成してください。それらをすべて印刷してください。
では、真ん中の選択肢を "Hannah Montanna Linux "に置き換えてください。
練習2:ユーザーから与えられた3つの数字を逆順に表示するBashスクリプトを作成します。
期待される成果
Enter three numbers and press enterNumbers in reverse order are:
このシリーズを通してBashシェルスクリプトを楽しく学んでいただけたと思います。次の章ではif-elseの使い方を学びますので、お楽しみに。
経由





