Latest web development tutorials

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.