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
# 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[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
# 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
Wir können auch zuerst ein assoziatives Array deklarieren und dann die Schlüssel und Werte festlegen:
Beispiel
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
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
# 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
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
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
# 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 数组元素个数为: 4Andere Erweiterungen