ホームページ  >  記事  >  バックエンド開発  >  シェル配列と連想配列の詳しい説明とサンプルコード

シェル配列と連想配列の詳しい説明とサンプルコード

高洛峰
高洛峰オリジナル
2017-02-07 17:34:331063ブラウズ

シェル配列と連想配列

1. 配列

1.1. 配列の定義

一対の括弧は配列を表し、配列の要素はスペース記号で区切られます

xiaosi@Qunar:~$ a=(1 2 3)
xiaosi@Qunar:~$ echo $a
1
xiaosi@Qunar:~$ a=("yoona" "lucy" "tom")
xiaosi@Qunar:~$ echo $a
yoona

1.2.

長さ: ${#配列名[@or*]}を使用して配列の長さを取得します

xiaosi@Qunar:~$ echo ${#a[@]}
3
xiaosi@Qunar:~$ echo ${#a[*]}
3

要素の取得: ${配列名[添字]}を使用して配列要素を取得します(添字は0から始まります) , subscript * または @

xiaosi@Qunar:~$ array=("yoona" "lucy" "tom")
xiaosi@Qunar:~$ echo ${array[0]}
yoona
xiaosi@Qunar:~$ echo ${array[1]}
lucy
xiaosi@Qunar:~$ echo ${array[*]}
yoona lucy tom
xiaosi@Qunar:~$ echo ${array[@]}
yoona lucy tom

の配列内容全体を取得します。 割り当て: 配列名 [subscript] への参照を割り当てることができます。添字が存在しない場合は、新しい配列要素が自動的に追加されます

xiaosi@Qunar:~$ array=("yoona" "lucy" "tom")
xiaosi@Qunar:~$ echo ${array[2]}
tom
xiaosi@Qunar:~$ array[2]=lily
xiaosi@Qunar:~$ echo ${array[2]}
lily

。削除: unset 配列 [添字] を使用すると、対応する要素をクリアできます。添字がない場合は、すべてのデータがクリアされます

xiaosi@Qunar:~$ array=("yoona" "lucy" "tom")
xiaosi@Qunar:~$ unset array[1]
xiaosi@Qunar:~$ echo ${array[*]}
yoona tom
xiaosi@Qunar:~$ unset array
xiaosi@Qunar:~$ echo ${array[*]}
xiaosi@Qunar:~$

1.3. ${配列名 [@ または *]: 開始によって、特定の範囲の要素を直接取得します

配列の指定された範囲の要素を取得し、スペースで区切られた文字列を返します

${配列名 [@ または *]/検索文字/置換文字} この操作元の配列の内容は変更されません。変更する必要がある場合は、上記の例を参照してください

2. 連想配列

Bash は、文字列を配列のインデックスとして使用できる連想配列をサポートしている場合があります。文字列インデックスの使用を理解します。

2.1 連想配列を定義する

まず、宣言文を使用して変数を連想配列として宣言する必要があります。

xiaosi@Qunar:~$ array=(yoona lucy tom)
xiaosi@Qunar:~$ echo ${array[*]}
yoona lucy tom
xiaosi@Qunar:~$ echo ${array[*]:1:2}
lucy tom
xiaosi@Qunar:~$ echo ${array[@]:0:1}
yoona

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

(1) 埋め込みインデックス値リストの方法を使う

xiaosi@Qunar:~$ array=(yoona lucy tom)
xiaosi@Qunar:~$ echo ${array[@]/lucy/lily}
yoona lily tom
xiaosi@Qunar:~$ echo ${array[@]}
yoona lucy tom


(2) 代入には独立したインデックス値を使う

xiaosi@Qunar:~$ declare -A assArray

2.2 リスト配列のインデックス

各配列にはインデックスがある 検索に使用します。 ${!array name[@or*]} を使用して、配列のインデックス リストを取得します

xiaosi@Qunar:~$ assArray=([lucy]=beijing [yoona]=shanghai)
xiaosi@Qunar:~$ echo ${assArray[lucy]}
beijing

2.3 すべてのキーと値のペアを取得します

xiaosi@Qunar:~$ assArray[lily]=shandong
xiaosi@Qunar:~$ assArray[sunny]=xian
xiaosi@Qunar:~$ echo ${assArray[sunny]}
xian
xiaosi@Qunar:~$ echo ${assArray[lily]}
shandong

結果:

xiaosi@Qunar:~$ echo ${!assArray[*]}
lily yoona sunny lucy
xiaosi@Qunar:~$ echo ${!assArray[@]}
lily yoona sunny lucy

読んでいただきありがとうございます、このサイトをサポートしていただきありがとうございます。

シェル配列と連想配列のより詳細な説明とサンプルコードについては、PHP 中国語 Web サイトに注目してください。

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