Shell? Variable
Shell-Variablen
Wenn Sie definieren eine Variable, die Variablennamen ohne Dollarzeichen ($, PHP-Variablen erforderlich), wie zum Beispiel:
your_name="w3big.com"
Beachten Sie, dass es keinen Raum zwischen dem Variablennamen und Gleichheitszeichen ist, die Ihnen vertraut sind und alle Programmiersprachen sind nicht das gleiche. Inzwischen muss der Variablenname diese Benennungsregeln folgen:
- Das erste Zeichen muss ein Buchstabe (az, AZ) sein.
- Keine Leerzeichen, wird ein Unterstrich (_).
- Sie können keine Interpunktion verwenden.
- Sie können nicht bash in Schlüsselwort (Befehl help die verfügbaren reservierten Schlüsselwörter zu sehen).
Neben der direkten Zuweisung explizit, können Sie auch Variablen Werte mit Anweisungen weisen wie zum Beispiel:
for file in `ls /etc`
Die obige Aussage der Dateiname Verzeichnis / etc aus dem Verkehr.
Verwenden von Variablen
Verwenden Sie eine definierte Variable, solange die Variablennamen durch ein Dollarzeichen vorangestellt, wie folgt aus:
your_name="qinjx" echo $your_name echo ${your_name}
Variablenname außerhalb der geschweiften Klammern sind optional, und ohne alles in Ordnung, fügen Sie Klammern zu helfen, die Grenze Identifikationsvariablen, wie der folgende Fall erklären:
for skill in Ada Coffe Action Java; do echo "I am good at ${skill}Script" done
Wenn Sie nicht über Fähigkeiten Variablen und Klammern geben, geschrieben echo "Ich bin gut bei $ skillScript", wird der Interpreter $ skillScript als Variable setzen (sein Wert ist leer), die Ausführung von Code ist nicht das Ergebnis, das wir das gleiche wieder erwarten.
Stellen Sie alle Variablen Klammern, es ist eine gute Programmierpraxis.
Definierten Variablen kann neu definiert werden, beispielsweise:
your_name="tom" echo $your_name your_name="alibaba" echo $your_name
Schreiben ist legal, aber beachten Sie, dass, wenn die zweite Zuweisung $ nicht schreiben kann your_name = "alibaba", eine Variable verwenden, wenn es um das Dollarzeichen ($) hinzugefügt wird.
Read-only-Variablen
Verwenden Sie den Befehl nur lesbar Variablen können als nur lesbare Variable, den Wert der Lesevariablen definiert werden, können nicht geändert werden.
Die folgenden Beispiele versuchen, die Nur-Lese-Variablen zu ändern, werden die Ergebnisse angegeben werden:
#!/bin/bash myUrl="http://www.w3cschool.cc" readonly myUrl myUrl="http://www.w3big.com"
Führen Sie das Skript mit den folgenden Ergebnissen:
/bin/sh: NAME: This variable is read only.
entfernen Variable
Verwenden Sie den Befehl nicht gesetzt, eine Variable zu löschen. Syntax:
unset variable_name
Variable kann nicht nach entfernt wiederverwendet werden wird. unset Befehl kann die Nur-Lese-Variablen nicht entfernen.
Beispiele
#!/bin/sh myUrl="http://www.w3big.com" unset myUrl echo $myUrl
Beispiele für die Umsetzung der oben wird keine Ausgabe haben.
Variablentypen
Wenn Sie die Shell ausgeführt werden, wird es gleichzeitig drei Parameter sein:
- 1) Lokale Variablen Lokale Variablen im Skript oder Befehl definiert ist nur gültig in der aktuellen Shell - Instanz, andere Shell - Startprogramm nicht auf lokale Variablen zugreifen können.
- 2) Umweltvariablen alle Programme, einschließlich der Shell - Programm gestartet wird , können Umgebungsvariablen zugreifen können einige Anwendungen erfordern Umgebungsvariablen ihren normalen Betrieb zu gewährleisten. Bei Bedarf kann das Shell-Script auch Umgebungsvariablen definieren.
- 3) Shell - Variablen die Shell - Variable ist eine spezielle Variable durch das Shell - Programm eingestellt. Schale variable Teil der Umgebungsvariable, sind einige lokale Variablen auf den normalen Betrieb der Schale zu gewährleisten
Shell-String
String Shell-Programmierung ist die am häufigsten verwendeten und nützlichen Datentypen (außer Zahlen und Strings, fehlt auch andere Arten von Hand), können Strings in einfache Anführungszeichen eingeschlossen werden, doppelte Anführungszeichen können auch verwendet werden, oder auch nicht in Anführungszeichen gesetzt werden. Der Unterschied zwischen Einzel- und doppelten Anführungszeichen mit PHP ist ähnlich.
Einfache Anführungszeichen
str='this is a string'
Single-Strings in Anführungszeichen Einschränkungen:
- Alle Zeichen in einfachen Anführungszeichen ausgegeben werden als einfache Anführungszeichen in der String-Variable ist ungültig;
- Single-Strings in Anführungszeichen in einem einfachen Anführungszeichen (einfache Anführungszeichen nach dem Escape-Zeichen noch) erscheinen nicht.
doppelte Anführungszeichen
your_name='qinjx' str="Hello, I know your are \"$your_name\"! \n"
Doppelte Anführungszeichen Vorteile:
- Doppelte Anführungszeichen können Variable
- Doppelte Anführungszeichen können Escape-Zeichen erscheinen
String-Verkettung
your_name="qinjx" greeting="hello, "$your_name" !" greeting_1="hello, ${your_name} !" echo $greeting $greeting_1
Der String-Länge
string="abcd" echo ${#string} #输出 4
Extract Teilzeichenfolge
Die folgenden Beispiele aus den ersten beiden Zeichenketten beginnen vier Zeichen erfassen:
string="w3big is a great site" echo ${string:1:4} # 输出 unoo
Finden Teilzeichenfolge
Finden Zeichen "i oder s" Position:
string="w3big is a great company" echo `expr index "$string" is` # 输出 8
Hinweis: Das obige Skript "` "anti-Anführungszeichen statt einfache Anführungszeichen" "" Seien Sie nicht getäuscht werden, oh.
Shell Array
bash unterstützt eindimensionales Array (unterstützt keine multidimensionalen Arrays), und definieren nicht die Größe des Arrays.
Ähnlich wie bei der C-Sprache, den Index der Array-Elemente von 0 Startnummer. Ruft ein Array von Elementen Vorteil des Index zu nehmen, kann der Index eine ganze Zahl sein oder arithmetischen Ausdruck, dessen Wert sollte größer als oder gleich 0 ist.
definieren Sie Arrays
In der Shell verwenden Sie Klammern um ein Array zu bezeichnen, die Array-Elemente mit den "Raum" Symbole getrennt. Die allgemeine Form einer Anordnung wird wie folgt definiert:
数组名=(值1 值2 ... 值n)
Zum Beispiel:
array_name=(value0 value1 value2 value3)
oder
array_name=( value0 value1 value2 value3 )
Sie kann auch separat für jede Komponente des Arrays definieren:
array_name[0]=value0 array_name[1]=value1 array_name[n]=valuen
Sie können nicht einen kontinuierlichen Index verwenden, und es gibt keine Grenze, die im Zielbereich.
lesen Array
Das allgemeine Format wird Array Elementwert lesen:
${数组名[下标]}
Zum Beispiel:
valuen=${array_name[n]}
Verwenden Sie das @ -Symbol können ein Array aller Elemente erhalten, wie zum Beispiel:
echo ${array_name[@]}
Erhalten Länge des Arrays
Ruft ein Array von Längen der String-Länge und erhalten die gleiche Art und Weise, zum Beispiel:
# 取得数组元素的个数 length=${#array_name[@]} # 或者 length=${#array_name[*]} # 取得数组单个元素的长度 lengthn=${#array_name[n]}
Shell Hinweise
Linie mit "#" am Anfang des Kommentars wird vom Interpreter ignoriert.
sh gibt es keine mehrzeiligen Kommentare, kann jede Zeile nur ein # Zeichen hinzuzufügen. Nur wie folgt aus:
#-------------------------------------------- # 这是一个注释 # author:本教程 # site:www.w3big.com # slogan:学的不仅是技术,更是梦想! #-------------------------------------------- ##### 用户配置区 开始 ##### # # # 这里可以添加脚本描述信息 # # ##### 用户配置区 结束 #####
Wenn der Entwicklungsprozess, stoßen große Teile des Codes müssen vorübergehend nach einer Weile Kommentar und unkommentiert, wie es zu tun?
Jede Zeile ein # Symbol hinzufügen zu mühsam, können Sie einige Code zu setzen, um mit einem Paar von geschweiften Klammern mit Anmerkungen versehen werden, als eine Funktion definiert, kein Ort, um diese Funktion aufzurufen, wird dieser Code nicht als Anmerkungen ausgeführt und erreicht werden Wirkung.