GNU/Linux >> Linux の 問題 >  >> Linux

シェルスクリプトの配列

シェルスクリプトで配列を操作する方法を知っていると、より大きなデータセットを非常に効率的に操作するのに役立ちます。しかし、アレイとは何ですか?また、どのようにアレイを作成できますか?調べてみましょう!

アレイとは何ですか?

プログラミング言語の基本をすでに理解している場合は、配列とは何かを知っています。ただし、初心者の方は、配列の基本を確認して、配列の操作方法を学びましょう。

変数は単一のデータ要素を格納します。一方、配列は事実上無制限の数のデータ要素を格納できます。大量のデータを処理する場合、変数は非常に非効率的であることが判明する可能性があり、配列を実際に使用することは非常に役立ちます。

シェルスクリプトで配列を作成する方法を学びましょう。

シェルスクリプトでの配列の作成

シェルスクリプトで使用できる配列には2つのタイプがあります。

  • インデックス付き配列 –0から始まるインデックスを持つ要素を格納します
  • 連想配列 –要素をキーと値のペアで格納します

作成されるデフォルトの配列は、インデックス付き配列です。インデックス名を指定すると、連想配列になり、数字の代わりにインデックス名を使用して要素にアクセスできます。

配列の宣言:

root@ubuntu:~# declare -A assoc_array
root@ubuntu:~# assoc_array[key]=value
OR
root@ubuntu:~# declare -a indexed_array
root@ubuntu:~# indexed_array[0]=value

大文字と小文字のaに注意してください 。大文字のA 小文字のaで連想配列を宣言するために使用されます インデックス付き配列を宣言するために使用されます。

declare キーワードは配列を明示的に宣言するために使用されますが、実際に使用する必要はありません。配列を作成するときは、配列を明示的に宣言しなくても、必要な配列のタイプに基づいて値を初期化できます。

シェルスクリプトでの配列の操作

配列の作成方法がわかったところで、配列の操作方法を学びましょう。これらはデータ要素のコレクションであるため、ループと配列を同時に操作して、必要なデータポイントを抽出できます。

1。配列要素に個別にアクセスする

各データポイントには個別にインデックスが付けられていることがわかっているため、以下に示すように配列インデックスを指定することで、すべての配列要素にアクセスできます。

assoc_array[element1]="Hello World"
echo ${assoc_array[element1]}

同様に、いくつかのインデックス付き配列要素にアクセスしてみましょう。インデックスは要素ごとに自動的に生成されるため、スペースで区切ることにより、インデックス配列のすべての要素を指定できます。

index_array=(1 2 3 4 5 6)
echo ${index_array[0]}

ご覧のとおり、最初の要素はインデックス0に基づいて自動的に印刷されます。

2。配列要素を順番に読み取る

すでにforループを知っている場合、これは簡単な作業になります。そうでない場合は、今後のチュートリアルで取り上げます。シェルスクリプトのwhileループまたはforループを利用して、配列要素を処理します。以下のスクリプトをコピーして、 .shとして保存します。

#!/bin/bash
index_array=(1 2 3 4 5 6 7 8 9 0)

for i in ${index_array[@]}
do
        echo $i
done

上記のスクリプトは次のように出力します:

これで、 index_array [@]に気づいたかもしれません。 @ が何であるか疑問に思っている場合は、 シンボルはのためのものです、私たちは今同じことを調べるつもりです。

シェルスクリプトの配列の組み込み操作

要素に個別にアクセスし、forループを使用する方法を学習したので、配列でデフォルトで使用できるさまざまな操作を学習しましょう。

1。配列のすべての要素にアクセスする

配列のインデックスまたはキーを提供することにより、要素にアクセスする方法を学びました。ただし、すべての要素を同時に印刷したり、すべての要素を操作したりする場合は、[@]という別の演算子を使用できます。 シンボル。

上記の例でお気づきのように、forループを使用してすべての配列要素をループしたいときにこの記号を使用しました。

echo ${assoc_array[@]}

上記は、連想配列内に格納されているすべての要素を出力します。

2。配列内の要素の数を数える

@に似ています 上記の記号には、#があります 配列に格納されている要素の数を提供するために、配列名の前に付けることができる記号。それがどのように機能するか見てみましょう。

echo ${#index_array[@]}

特定の要素に使用されている文字数をカウントしたい場合は、@を置き換えるだけです。 インデックス付きのシンボル。

3。個々の配列要素を削除する

配列要素を追加して印刷する方法も知っています。特定の要素を削除する方法を学びましょう。この目的のために、unsetを使用します キーワード。

unset index_array[1]

上記のコード例の配列名とインデックスIDを置き換えると、必要な配列要素が削除されます。とても簡単ですね。

結論

シェルスクリプトは非常に広大であり、ターミナルで実行できるすべての機能を、スクリプトを作成する適切な人に置き換えることができます。シェルスクリプトの配列のいくつかの追加機能には、正規表現を操作できることも含まれます。 (正規表現)。さまざまな正規表現を使用して、シェルスクリプト内の配列要素を操作できます。

今のところ、配列の作成と操作について十分に理解し、スクリプトで配列を使用できるようになることを願っています。以下にコメントして、ご意見やこのトピックについて質問がある場合はお知らせください。


Linux
  1. シェルスクリプトでSetuidを許可しますか?

  2. シェルスクリプトの連想配列?

  3. シェルスクリプトの正しいロック?

  1. シェルスクリプトでルート権限を削除する方法は?

  2. Webサイトからシェルスクリプトを実行しますか?

  3. シェルスクリプトでパスワードを隠す?

  1. Unixシェルスクリプトのファイル拡張子?

  2. 複数のシェルスクリプト間で変数を共有しますか?

  3. シェルスクリプトのPosixコンプライアンスをテストする方法は?