Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Einführung in das grundlegende Erlernen von Linux-Shell-Skripten (4)

Detaillierte Einführung in das grundlegende Erlernen von Linux-Shell-Skripten (4)

黄舟
黄舟Original
2017-02-04 09:21:041697Durchsuche

Im vorherigen Artikel zum grundlegenden Studium von Linux-Shell-Skripten haben wir über „If“, „Select“ und „Case“ des Steuerungsprozesses im Linux-Shell-Skript gesprochen. Hier stellen wir die Schleife und Anführungszeichen des Steuerungsprozesses vor Es gibt mehr Inhalte im Linux-Shell-Skript, und einige der Inhalte beziehen sich auf das hier aufgeführte Dokument.
4.loop
Schleifenausdruck:

while ...; do
....
done

while-Schleife wird ausgeführt, bis der Ausdruckstest wahr ist. wird ausgeführt, solange der Ausdruck, auf den wir testen, wahr ist.
Das Schlüsselwort „break“ wird verwendet, um aus der Schleife auszubrechen. Mit dem Schlüsselwort „continue“ kann direkt zur nächsten Schleife gesprungen werden, ohne den restlichen Teil auszuführen.
Der for-Schleifenausdruck betrachtet eine Liste von Zeichenfolgen (durch Leerzeichen getrennte Zeichenfolgen) und weist sie einer Variablen zu:

for var in ....; do
....
done

Im folgenden Beispiel wird ABC separat gedruckt der Bildschirm:

#!/bin/sh
for var in A B C ; do
echo "var is $var"
done

Hier ist ein nützlicheres Skript showrpm, dessen Funktion darin besteht, einige Statistiken von RPM-Paketen auszudrucken:

#!/bin/sh
# list a content summary of a number of RPM packages
# USAGE: showrpm rpmfile1 rpmfile2 ...
# EXAMPLE: showrpm /cdrom/RedHat/RPMS/*.rpm
for rpmpackage in $*; do
if [ -r "$rpmpackage" ];then
echo "=============== $rpmpackage =============="
rpm -qi -p $rpmpackage
else
echo "ERROR: cannot read file $rpmpackage"
fi
done

hier Ein zweites Special Es erscheint die Variable $*, die die Werte aller eingegebenen Befehlszeilenparameter enthält.
Wenn Sie showrpm openssh.rpm w3m.rpm webgrep.rpm ausführen
Zu diesem Zeitpunkt enthält $* 3 Zeichenfolgen, nämlich openssh.rpm, w3m.rpm und webgrep.rpm.
5. Anführungszeichen
Das Programm erweitert Platzhalter und Variablen, bevor es Parameter an das Programm übergibt. Die sogenannte Erweiterung bedeutet hier, dass das Programm Platzhalterzeichen (z. B. *) durch entsprechende Dateinamen und Variablen durch Variablenwerte ersetzt. Um zu verhindern, dass das Programm diese Ersetzung vornimmt, können Sie Anführungszeichen verwenden: Sehen wir uns ein Beispiel an, in dem wir davon ausgehen, dass sich im aktuellen Verzeichnis einige Dateien befinden, zwei JPG-Dateien, mail.jpg und tux.jpg.
1.2 Kompilieren Sie das SHELL-Skript
#ch#!/bin/sh mod +x filename
cho *.jpg ∪ langsam 螅谛果暙耄?./filename, um Ihr Skript auszuführen.
Dadurch werden die Ergebnisse von „mail.jpg tux.jpg“ ausgedruckt.
Anführungszeichen (einfach und doppelt) verhindern diese Platzhaltererweiterung:

#!/bin/sh
echo "*.jpg"
echo '*.jpg'

Dadurch wird „*.jpg“ zweimal gedruckt.
Einfache Anführungszeichen sind strenger. Es verhindert jegliche Variablenerweiterung. Doppelte Anführungszeichen verhindern die Erweiterung durch Platzhalter, ermöglichen jedoch die Erweiterung durch Variablen.

#!/bin/sh
echo $SHELL
echo "$SHELL"
echo '$SHELL'

Das laufende Ergebnis ist:

/bin/bash
/bin/bash
$SHELL

Schließlich gibt es noch eine andere Möglichkeit, diese Erweiterung zu verhindern, nämlich die Verwendung des Escape-Zeichens-Backslash Rod :

echo *.jpg
echo $SHELL

Dies wird Folgendes ausgeben:

*.jpg
$SHELL

Das ist alles für die Grundlagen von Linux-Shell-Skripten, den Kontrollfluss und ein wenig mehr Inhalt von hier Dokumentieren Sie das nächste Mal erneut. Analysieren Sie es erneut.

Das Obige ist eine detaillierte Einführung in das grundlegende Erlernen von Linux-Shell-Skripten (IV). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn