Ausführliche Erklärung des Shell-Arrays und des assoziativen Arrays sowie Beispielcode

高洛峰
Freigeben: 2023-03-05 15:02:01
Original
1062 Leute haben es durchsucht

Shell-Array und assoziatives Array

1. Array

1.1. Array-Definition

Ein Klammerpaar stellt ein Array dar und die Array-Elemente werden durch Leerzeichen getrennt

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

1.2. Array-Länge, Elemente, Zuweisung und Löschung

Länge: Verwenden Sie ${#array name[@ oder *]}, um die Array-Länge zu erhalten

xiaosi@Qunar:~$ echo ${#a[@]}
3
xiaosi@Qunar:~$ echo ${#a[*]}
3
Nach dem Login kopieren

Elemente abrufen: Verwenden Sie ${array name[subscript]}, um die Array-Elemente abzurufen (der Index beginnt bei 0), der Index ist * oder @, um das Ganze abzurufen Array-Inhalt

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
Nach dem Login kopieren

Zuweisung: Sie können dem Array-Namen [Index] eine Referenz zuweisen. Wenn der Index nicht vorhanden ist, wird automatisch ein neues Array-Element hinzugefügt

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

Löschen: Das entsprechende Element kann durch ein nicht gesetztes Array [Index] gelöscht werden, und alle Daten werden ohne Index gelöscht

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:~$
Nach dem Login kopieren

1.3. Elemente in einem bestimmten Bereich abrufen

Rufen Sie die Elemente im angegebenen Bereich des Arrays direkt über ${Array-Name [@ oder *]: Startposition: Länge} ab und geben Sie eine durch Leerzeichen getrennte Zeichenfolge zurück

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
Nach dem Login kopieren

1.4. Ersetzen Sie

${Array-Name [@ oder *]/Suchzeichen/Ersatzzeichen}. Durch diesen Vorgang wird der ursprüngliche Array-Inhalt nicht geändert Sie müssen es ändern, Sie können das obige Beispiel sehen

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

2. Assoziatives Array

Bash unterstützt assoziative Arrays, die Zeichenfolgen als Array-Indizes verwenden können. Manchmal ist es einfacher, String-Indizes zu verwenden.

2.1 Assoziatives Array definieren

Zuerst müssen Sie eine Deklarationsanweisung verwenden, um eine Variable als assoziatives Array zu deklarieren.

xiaosi@Qunar:~$ declare -A assArray
Nach dem Login kopieren

Nach der Deklaration gibt es zwei Möglichkeiten, Elemente zu einem assoziativen Array hinzuzufügen.

(1) Verwenden Sie die Methode der eingebetteten Indexwertliste

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

(2) Verwenden Sie unabhängige Indexwerte für die Zuweisung

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

2.2 Array-Indizes auflisten

Jedes Array verfügt über einen Index für die Suche. Verwenden Sie ${!array name[@or*]}, um die Indexliste des Arrays abzurufen

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

2.3 Alle Schlüssel-Wert-Paare abrufen

#! /bin/bash
declare -A cityArray
cityArray=([yoona]=beijing [lucy]=shanghai [lily]=shandong)
for key in ${!cityArray[*]}
do
 echo "${key} come from ${cityArray[$key]}"
done
Nach dem Login kopieren

 Ergebnis:

xiaosi@Qunar:~/company/sh$ bash array.sh
lily come from shandong
yoona come from beijing
lucy come from shanghai
Nach dem Login kopieren

Vielen Dank fürs Lesen, ich hoffe, es kann allen helfen, vielen Dank für Ihre Unterstützung dieser Website!

Ausführlichere Erklärungen und Beispielcodes für Shell-Arrays und assoziative Arrays finden Sie auf der chinesischen PHP-Website!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!