Shell-Arrays

Ein Array kann mehrere Werte speichern. Die Bash Shell unterstützt nur eindimensionale Arrays (unterstützt keine mehrdimensionalen Arrays). Sie müssen die Array-Größe bei der Initialisierung nicht festlegen (ähnlich wie PHP).

Ähnlich wie in den meisten Programmiersprachen beginnen die Indizes der Array-Elemente bei 0.

Shell-Arrays werden durch Klammern dargestellt, und Elemente werden durch "Leerzeichen"-Symbole getrennt. Das Syntaxformat lautet wie folgt:

array_name=(value1 value2 ... valuen)

Beispiel

Ein einfaches Array erstellenmy_array:

Beispiel

#!/bin/bash
# author: Rookie Tutorial
# url:www.example.com

my_array=(A B "C" D)

Wir können auch numerische Indizes verwenden, um ein Array zu definieren:

Beispiel

array_name[0]=value0
array_name[1]=value1
array_name[2]=value2

Arrays lesen

Das allgemeine Format zum Lesen von Array-Elementwerten ist:

${array_name[index]}

Das folgende Beispiel liest Array-Elemente anhand des numerischen Index:

Beispiel

#!/bin/bash
# author: Rookie Tutorial
# url:www.example.com

my_array=(A B "C" D)

echo "Das erste Element ist:${my_array[0]}"
echo "Das zweite Element ist:${my_array[1]}"
echo "Das dritte Element ist:${my_array[2]}"
echo "Das vierte Element ist:${my_array[3]}"

Führen Sie das Skript aus, und das Ausgabeergebnis lautet wie folgt:

$ chmod +x test.sh 
$ ./test.sh
第一个元素为: A
第二个元素为: B
第三个元素为: C
第四个元素为: D

Assoziative Arrays

Bash unterstützt assoziative Arrays, bei denen beliebige Zeichenketten oder Ganzzahlen als Indizes verwendet werden können, um auf Array-Elemente zuzugreifen.

Assoziative Arrays verwenden dendeclare-Befehl zur Deklaration, die Syntax lautet wie folgt:

declare -A array_name

-ADie Option wird verwendet, um ein assoziatives Array zu deklarieren.

Die Schlüssel eines assoziativen Arrays sind eindeutig.

Im folgenden Beispiel erstellen wir ein assoziatives Arraysiteund legen verschiedene Schlüssel-Wert-Paare an:

Beispiel

declare -A site=(["google"]="www.google.com" ["example"]="www.example.com" ["taobao"]="www.taobao.com")

Wir können auch zuerst ein assoziatives Array deklarieren und dann die Schlüssel und Werte festlegen:

Beispiel

declare -A site
site["google"]="www.google.com"
site["example"]="www.example.com"
site["taobao"]="www.taobao.com"

Sie können auch beim Definieren Werte zuweisen:

Um auf Elemente eines assoziativen Arrays zuzugreifen, können Sie den angegebenen Schlüssel verwenden. Das Format sieht wie folgt aus:

array_name["index"]

Im folgenden Beispiel greifen wir über den Schlüssel auf die Elemente eines assoziativen Arrays zu:

Beispiel

declare -A site
site["google"]="www.google.com"
site["example"]="www.example.com"
site["taobao"]="www.taobao.com"

echo ${site["example"]}

Führen Sie das Skript aus, und das Ausgabeergebnis lautet wie folgt:

www.example.com

Alle Elemente in einem Array abrufen

Verwenden Sie@oder*, um alle Elemente im Array zu erhalten, zum Beispiel:

Beispiel

#!/bin/bash
# author: Rookie Tutorial
# url:www.example.com

my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D

echo "Die Elemente des Arrays sind:${my_array[*]}"
echo "Die Elemente des Arrays sind:${my_array[@]}"

Führen Sie das Skript aus, und das Ausgabeergebnis lautet wie folgt:

$ chmod +x test.sh 
$ ./test.sh
数组的元素为: A B C D
数组的元素为: A B C D

Beispiel

declare -A site
site["google"]="www.google.com"
site["example"]="www.example.com"
site["taobao"]="www.taobao.com"

echo "Die Elemente des Arrays sind:${site[*]}""
echo "Die Elemente des Arrays sind:${site[@]}""

Führen Sie das Skript aus, und das Ausgabeergebnis lautet wie folgt:

$ chmod +x test.sh 
$ ./test.sh
数组的元素为: www.google.com www.example.com www.taobao.com
数组的元素为: www.google.com www.example.com www.taobao.com

Fügen Sie ein Ausrufezeichen vor dem Array hinzu,!um alle Schlüssel des Arrays zu erhalten, zum Beispiel:

Beispiel

declare -A site
site["google"]="www.google.com"
site["example"]="www.example.com"
site["taobao"]="www.taobao.com"

echo "Die Schlüssel des Arrays sind:${!site[*]}""
echo "Die Schlüssel des Arrays sind:${!site[@]}""

Führen Sie das Skript aus, und das Ausgabeergebnis lautet wie folgt:

数组的键为: google example taobao
数组的键为: google example taobao

Die Länge eines Arrays ermitteln

Die Methode zum Ermitteln der Array-Länge ist dieselbe wie die Methode zum Ermitteln der String-Länge, zum Beispiel:

Beispiel

#!/bin/bash
# author: Rookie Tutorial
# url:www.example.com

my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D

echo "Die Anzahl der Array-Elemente ist:${#my_array[*]}""
echo "Die Anzahl der Array-Elemente ist:${#my_array[@]}""

Führen Sie das Skript aus, und das Ausgabeergebnis lautet wie folgt:

$ chmod +x test.sh 
$ ./test.sh
数组元素个数为: 4
数组元素个数为: 4
Andere Erweiterungen