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

高洛峰
リリース: 2023-03-05 15:02:01
オリジナル
1062 人が閲覧しました

シェル配列と連想配列

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 サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!