ホームページ  >  記事  >  運用・保守  >  Linuxの配列と連想配列の詳しい解説

Linuxの配列と連想配列の詳しい解説

小云云
小云云オリジナル
2018-03-31 13:48:032598ブラウズ

配列はシェルスクリプトの非常に重要な部分であり、インデックスの助けを借りて複数の独立したデータをコレクションとして保存します。通常の配列では、配列のインデックスとして整数のみを使用できます。 Bash は、文字列を配列インデックスとして使用できる連想配列もサポートしています。多くの場合、文字列のインデックス付けの方が理解しやすいので、この場合に連想配列が役に立ちます。ここでは、通常の配列と連想配列の使い方を見ていきます。

(1) 配列を定義する方法はたくさんあります。単一行の値の列を使用して配列を定義できます:
array_var=(1 2 3 4 5 6)
#これらの値は 0 から始まる連続した位置に格納されます。グループ「index-value」として定義することもできます:
array_var[0]="test1"
array_var[1]="test2"
array_var[2]="test3"
array_var[3]="test4"
array_var[4]=" test5"
array_var[5]="test6"

(2) 特定のインデックスの配列要素の内容を出力します:

[rhx@localhost Test]$ vim arr.sh

[rhx@localhost Test]$ source arr.sh
[rhx@localhost Test]$ echo ${array[0]}
//输出:1
[rhx@localhost Test]$ echo ${array[*]}
//输出数组元素:1 2 3 4 5 6 7 8 9 10
[rhx@localhost Test]$ echo ${array[@]}
//输出数组元素1 2 3 4 5 6 7 8 9 10
[rhx@localhost Test]$ echo ${#array[@]}
//输出数组长度:10
[rhx@localhost Test]$ echo ${#array[*]}
//输出数组长度:10

連想配列は Bash から導入されました。バージョン4.0。ハッシュ技術の助けを借りて、連想配列は多くの問題を解決するための強力なツールになります。次に調べてみましょう。

1. 連想配列を定義する

連想配列では、任意のテキストを配列のインデックスとして使用できます。まず、宣言ステートメントを使用して、変数名を連想配列として宣言する必要があります。次のように:

[rhx@localhost Test]$declare -A ass_array

宣言後、連想配列に要素を追加するには 2 つの方法があります。

 埋め込み「インデックス値」リストのメソッドを利用して「インデックス値」リストを提供します:
$ ass_array=([index1]=val1 [index2]=val2)
 独立した「インデックス値」割り当てを使用します:
$ ass_array[index1]=val1
$ ass_array'index2]=val2

たとえば、連想配列を使用して果物の価格を設定する方法を想像してください:

[rhx@localhost Test]$ declare -A fruit_value
[rhx@localhost Test]$ fruit_value=([apple]="100"[orange]="150")
[rhx@localhost Test]$ echo ${fruit_value[apple]}

2. 配列のインデックス

各配列要素をリストします。検索用のインデックスがあります。通常の配列と連想配列ではインデックスの種類が異なります。次のメソッドを使用して、配列のインデックス リストを取得できます:
$ echo ${!array_var[*]}
次のメソッドも使用できます:
$ echo ${!array_var[@]
前述の Fruits_value 配列を次のように取得します。例として、次のコマンドを実行します。
$ echo ${!fruits_value[*]}
オレンジアップル
通常の配列の場合、この方法も実行可能です。

以上がLinuxの配列と連想配列の詳しい解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。