Shell-Tutorials (Ii): Variablen, spezielle Variablen _Shell

Quelle: Internet
Autor: Benutzer

Die Variable ist eine Zeichenfolge, und wir weisen einen Wert. Der zugewiesene Wert kann eine Zahl, Text, Dateiname, Gerät oder jede andere Art von Daten sein.

Eine Variable ist ein Zeiger, der die eigentlichen Daten nicht überschreitet. Schale, Sie können erstellen, zuweisen und Variablen zu löschen. Variablennamen:

Der Name der Variable kann nur Buchstaben (A bis Z) oder A-Z, Zahlen (0〜9) oder Unterstriche (_) enthalten.

Wie üblich, haben UNIX-Shell-Variablen ihren eigenen Namen in Großbuchstaben.

Das folgende Beispiel ist eine gültige Variablennamen:

_ALI
TOKEN_A
VAR_1
VAR_2

Folgendes ist ein Beispiel für eine ungültige Variablennamen:

2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!

Sie können nicht wie andere Zeichen verwenden. , * Oder diese Zeichen haben eine besondere Bedeutung. Definieren Sie Variablen:

Variablen sind wie folgt definiert:

variable_name=variable_value

Zum Beispiel:

NAME="Zara Ali"

Die Variablennamen und zugewiesene Wert "Zara Ali" wie im obigen Beispiel definiert. Variablen dieses Typs werden als skalare Variablen bezeichnet. Eine skalare Variable kann zu einem Zeitpunkt nur einen Wert enthalten.

Die Schale kann jeden gewünschten Wert in einer Variablen speichern. Zum Beispiel:

VAR1="Zara Ali"
VAR2=100
Zugang-Werte:

Für den Zugriff auf den Wert in einer Variablen gespeichert wird sein Name mit dem Dollarzeichen ($) vorangestellt:

Das folgende Skript wird beispielsweise auf den Wert definiert durch den Namen der Variablen zugreifen und drucken es in standard-Ausgabe:

#!/bin/sh
 
NAME="Zara Ali"
echo $NAME

Daraus ergeben sich folgende Werte:

Zara Ali
Nur-Lese Variablen:

Shell bietet einen nur-Lese Befehl, der als nur-Lese Variable gekennzeichnet ist. Letztere Variable als schreibgeschützt gekennzeichnet ist und ihr Wert kann nicht geändert werden.

Beispielsweise geben das folgende Skript ein Fehler Meldung beim Versuch, den Wert des NAME ändern:

#!/bin/sh
 
NAME="Zara Ali"
readonly NAME
NAME="Qadiri"

Dieses Ergebnis ergibt Folgendes:

/bin/sh: NAME: This variable is read only.
Um eine Variable Einstellung zu stornieren:

Eine Variable, die sich abgemeldet oder gelöscht teilt der Shell, die Variable Liste von Variablen zu löschen, die verfolgt werden. Sobald Sie die Einstellungen-Variable abbrechen, können Sie den Wert in der Variablen gespeichert nicht zugreifen.

Im folgenden ist die Syntax für die Definition einer Variablen mit dem unset Befehl:

unset variable_name

Der obige Befehl bricht die definierte Variable Sollwert. Hier ist ein einfaches Beispiel:

#!/bin/sh
 
NAME="Zara Ali"
unset NAME
echo $NAME

Im obigen Beispiel wird alles nicht ausdrucken. Variablen, die neu definiert werden, können nicht mit dem unset Befehl werden nicht als schreibgeschützt markiert. Variablentyp:

Wenn eine Shell ausgeführt wird, gibt es drei Arten von Variablen:

· Lokale Variable: eine lokale Variable ist eine Schale, die durch eine Variable in der aktuellen Instanz erfolgt. Dies ist nicht das Programm von der Shell gestartet. Legen Sie an der Eingabeaufforderung.

· Umgebungsvariable: eine Umgebungsvariable ist eine Schale, die durch eine Variable, die jedem Kindprozess ist erfolgt. Einige Programme benötigen, normale Umgebungsvariablen zu haben. In der Regel definiert ein Shell-Skript, dass nur die Programme, die für Umgebungsvariablen erforderlich sind nicht ausgeführt werden.

· Shell-Variable: die Shell-Variable ist eine spezielle Variable, von der Shell eingestellt und braucht auch eine normale für die Shell. Einige synthetische Variable Environment-Variablen, während andere lokalen Variablen.

Vorherigen Tutorials haben gesagt, über die Verwendung bestimmter nicht-alphanumerischen Zeichen in Variablennamen. Und zwar deshalb, weil die Namen der spezielle Unix-Variablen in diese Zeichen verwendet werden. Diese Variablen sind für bestimmte Funktionen reserviert.

Das $-Zeichen steht beispielsweise die Prozess-ID-Nummer oder PID, in der aktuellen Shell:

$echo $$

Der obige Befehl wird die PID in der aktuellen Shell geschrieben werden:

29949

Die folgende Tabelle zeigt einige speziellen Variablen, dass Sie in der Shell-Skript verwenden können:

Variable

Beschreiben

$0

Der Dateiname des aktuellen Scripts.

$N

Diese Variablen entsprechen die Argumente, mit denen ein Skript aufgerufen wird. Hier ist n eine positive dezimale s entsprechend der Position eines Arguments (das erste Argument ist $ Kument ist $, und auch auf).

$#

Die der Argumente, die ein Skript.

$*

Alle Argumente werden doppelte zitiert. Wenn ein Skript erhält und Argumente, $* entspricht $ $.

$@

Alle Argumente wird einzeln doppelt zitiert. Wenn ein Skript erhält und Argumente, $@ $ $ entspricht.

$?

Der Exit-Status des letzten Befehls ausgeführt.

$$

Der Prozess ist der der aktuellen Shell. Für Shell-Skripte die Prozess-ID unter denen ist und wird ausgeführt.

$!

Der Prozess ist das der letzte Befehl Hintergrund. Kommandozeilen-Argumente:

Die Befehlszeilenparameter von $ $ $ $... $ ist der Parameter "Position" mit 0 Dollar Hinweis zu den eigentlichen Befehl, Programm, Shell-Skript, Funktion und $ $ $, $,... $ als Parameter des Befehls.

Das folgende Skript verwendet eine Vielzahl von speziellen Variablen, die im Zusammenhang mit der Befehlszeile:

#!/bin/sh
 
echo "File Name: $0"
echo "First Parameter : $1"
echo "First Parameter : $2"
echo "Quoted Values: $@"
echo "Quoted Values: $*"
echo "Total Number of Parameters : $#"

Im folgenden ist ein Beispiel über das Skript ausführen:

$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2
Spezielle Parameter $ * und $ @:

Es gibt spezielle Parameter, die gleichzeitig auf alle Befehlszeilenargumente Zugriff. Beide $ * und $ @ werden die gleiche Aktion, wenn sie in doppelte Anführungszeichen eingeschlossen sind "".

Diese beiden Parameter legen die Befehlszeilenargumente, aber die "$ *" spezielle Parameter erfordert die gesamte Liste als Parameter mit Leerzeichen und "$ @" spezielle Parameter, die die gesamte Liste in verschiedenen Parametern aufgeteilt werden müssen.

Wir können die Befehlszeilenargumente verarbeiten ein Shell-Skript mit einer unbekannten Anzahl von unten schreiben * $ @ spezielle Parameter:

#!/bin/sh
 
for TOKEN in $*
do
   echo $TOKEN
done

Es ist ein Beispiel für das obige Skript ausführen:

$./test.sh Zara Ali 10 Years Old
Zara
Ali
10
Years
Old

Hinweis: hier tun... Getan, ist eine Schleife, die wir in einem späteren Tutorial abdecken wird. Exit-Status:

$? Eine Variable stellt den Exit-Status des vorherigen Befehls.

Die Ausfahrt ist ein numerischer Wert, der abgeschlossen ist, nach jedem Befehl zurückgegeben wird. In der Regel zurück die meisten Befehle, wenn sie nicht erfolgreich den Status auf 0 beenden Sie wenn sie erfolgreich sind.

Einige Befehle zurück an andere Staaten besondere Ausfahrt. Zum Beispiel einige Befehle unterscheiden zwischen Typfehler und zurückgeben von verschiedenen Ausgang Werten hängt das Scheitern eines bestimmten Typs.

Erfolgreiche Befehle wie im folgenden Beispiel:

$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2
$echo $?
0
$

Shell-Variablen sind ausreichend, um einen einzelnen Wert zu erhalten. Variablen dieses Typs werden als skalare Variablen bezeichnet.

Shell unterstützt verschiedene Arten von Variablen, die als Array-Variablen, die mehrere Werte gleichzeitig aufnehmen kann. Array, das bietet eine Möglichkeit für Gruppen von Variablen gruppiert werden. Anstatt einen neuen Namen für jede Variable, die Sie benötigen, können Sie ein einzelnes Array Variablen für alle anderen Variablen zu speichern.

Alle gilt Namensgebung, die Shell-Variablen zu besprechen für Array zu benennen.


Von: http://www.yiibai.com/shell/what_is_shell.html#

Kontaktiere uns

Die Inhaltsquelle dieser Seite ist aus dem Internet, und vertritt nicht die Meinung von Alibaba Cloud; auf dieser Seite erwähnte Produkte und Dienstleistungen haben keine Beziehung zu Alibaba Cloud. Wenn der Inhalt der Seite Ihrer Meinung nach verwirrend ist, schreiben sie uns bitte eine E-Mail. Wir werden das Problem innerhalb von 5 Tagen nach Erhalt Ihrer E-Mail bearbeiten.

Wenn Sie Fälle von Plagiaten aus der Community feststellen, senden Sie bitte eine E-Mail an info-contact@alibabacloud.com und legen Sie entsprechende Beweise vor. Ein Mitarbeiter wird Sie innerhalb von 5 Werktagen kontaktieren.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.