シェル配列

ShellShellBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、シェルプログラミングにおける配列の使い方を学びます。配列は、単一の名前の下に複数の値を格納できるデータ構造であり、データの整理と操作を容易にするものです。配列の初期化方法、要素の追加方法、インデックスを使った要素のアクセス方法、および配列内の要素数を決定する方法を学びます。この知識は、高度なシェルスクリプト作成やデータ操作タスクにとって基本的なものです。

新しいシェルスクリプトファイルを作成する

配列操作を記述する新しいシェルスクリプトファイルを作成して始めましょう。

  1. WebIDEでターミナルを開きます。

  2. プロジェクトディレクトリに移動します。

    cd ~/project
  3. touchコマンドを使用して、arrays.shという名前の新しいファイルを作成します。

    touch arrays.sh
  4. WebIDEでarrays.shファイルを開きます。

空の配列を初期化する

スクリプトファイルができたので、まず3つの空の配列を初期化して始めましょう。

arrays.shファイルに次のコードを追加します。

#!/bin/bash

## 空の配列を初期化する
NUMBERS=()
STRINGS=()
NAMES=()

このコードが何をするか解説しましょう。

  • 最初の行の#!/bin/bashはシャバンと呼ばれます。これは、このスクリプトをBashシェルで実行するようシステムに指示します。
  • 3つの空の配列NUMBERSSTRINGSNAMESを作成しています。
  • ()構文で空の配列を初期化しています。

配列に要素を追加する

空の配列ができたので、それらにいくつかの要素を追加しましょう。

配列の初期化の下に、次のコードをarrays.shファイルに追加します。

## NUMBERS配列に要素を追加する
NUMBERS+=(1)
NUMBERS+=(2)
NUMBERS+=(3)

## STRINGS配列に要素を追加する
STRINGS+=("hello")
STRINGS+=("world")

## NAMES配列に要素を追加する
NAMES+=("John")
NAMES+=("Eric")
NAMES+=("Jessica")

このコードが行うことは次の通りです。

  • 配列に要素を追加するには+=演算子を使用します。
  • NUMBERSには、整数1、2、3を追加しています。
  • STRINGSには、文字列"hello"と"world"を追加しています。
  • NAMESには、3つの名前"John"、"Eric"、"Jessica"を追加しています。
  • 文字列を囲むことに注意してくださいが、数値には引用符は必要ありません。

配列内の要素数を決定する

配列に関する一般的な操作の1つは、それがどれだけの要素を含んでいるかを調べることです。NAMES配列に対してこれを行いましょう。

arrays.shファイルに次のコードを追加します。

## NAMES配列内の要素数を取得する
NumberOfNames=${#NAMES[@]}

この行は次のことを行います。

  • ${#NAMES[@]}NAMES配列内の要素数を返します。
  • この値をNumberOfNamesという変数に格納します。
  • 角括弧内の@記号は配列のすべての要素を指します。
  • NAMESの前の#記号は、シェルに対して要素を数えるよう指示します。

配列内の特定の要素にアクセスする

次に、NAMES配列内の特定の要素にアクセスしましょう。2番目の名前を取得します。

arrays.shファイルにこのコードを追加します。

## NAMES配列の2番目の名前にアクセスする
second_name=${NAMES[1]}

このコードが行うことは次の通りです。

  • ${NAMES[1]}を使ってNAMES配列の2番目の要素にアクセスしています。
  • 覚えておいてください、Bashの配列インデックスは0から始まるので、[1]は2番目の要素を示します。
  • この値をsecond_nameという変数に格納しています。

配列と変数を表示する

最後に、操作の結果を見るために、配列と変数を表示するコードを追加しましょう。

arrays.shファイルの末尾に次のコードを追加します。

## 配列と変数を表示する
echo "NUMBERS array: ${NUMBERS[@]}"
echo "STRINGS array: ${STRINGS[@]}"
echo "The number of names listed in the NAMES array: $NumberOfNames"
echo "The second name on the NAMES list is: $second_name"

このコードは次のことを行います。

  • echoを使ってコンソールに文字列を表示します。
  • ${NUMBERS[@]}${STRINGS[@]}はこれらの配列のすべての要素を表示します。
  • 先ほど作成したNumberOfNamessecond_name変数を表示します。

スクリプトを実行する

スクリプトを書いたので、実行して結果を見てみましょう。

  1. ターミナルで、正しいディレクトリにいることを確認します。

    cd ~/project
  2. スクリプトを実行可能にします。

    chmod +x arrays.sh
  3. スクリプトを実行します。

    ./arrays.sh

次のような出力が表示されるはずです。

NUMBERS array: 1 2 3
STRINGS array: hello world
The number of names listed in the NAMES array: 3
The second name on the NAMES list is: Eric

この出力は、配列操作が成功したことを示しています。

  • NUMBERS配列には1、2、3が含まれています。
  • STRINGS配列には"hello"と"world"が含まれています。
  • NAMES配列に正しく3つの名前がカウントされています。
  • 2番目の名前として"Eric"を正常に取得しました。

まとめ

この実験では、シェルスクリプトにおける配列の基本を学びました。配列の初期化、要素の追加、特定の要素へのアクセス、および配列内の要素数の決定を練習しました。これらのスキルは、より高度なシェルスクリプトのタスクにとって重要です。特に、データのリストを扱う場合や、複数の項目に対して操作を行う必要がある場合に役立ちます。配列は、シェルスクリプト内でデータを整理して操作する強力な方法を提供し、コードをより効率的で管理しやすくします。