Dies ist job control
unter Unix bekannt. Das &
weist die Shell an, den Befehl in den Hintergrund zu stellen. Dies bedeutet, dass der sys-snap.sh
Befehl weiterhin ausgeführt wird , Sie jedoch zu Ihrer Shell zurückkehren, damit Sie weiterhin parallele Befehle ausführen können.
Sie können die Liste der Jobs anzeigen, die derzeit mit dem jobs
Befehl ausgeführt werden. Sie können mit dem Befehl zum Befehl zurückkehren (in den Vordergrund bringen) fg
. Welche zieht den Befehl zurück in den Zustand , in dem Sie keine Aufforderung angezeigt , und Sie haben zu erteilen Ctrl- Czu töten den Prozess. Sie können diesen Vorgang jedoch unterbrechen (anhalten), indem Sie Ctrl- ausgeben Z. Dies hält an und bringt sys-snap.sh
Sie zu Ihrer Eingabeaufforderung zurück. Anschließend können Sie Hintergrund es (als ob Sie sie ausgestellt hatte mit der &
) mit dem bg
Befehl, und es wird resume von ihm ausgeführt ist , den Zustand pausiert Ctrl- Zhatte steckte es in.
Beachten Sie, dass Sie mehrere Jobs gleichzeitig ausführen können (siehe Abbildung jobs
):
[1]- Running sys-snap.sh &
[2]+ Running another-script.sh &
Sie können sie mit ihrer Auftragsnummer im Hintergrund und im Vordergrund anzeigen, %1
werden sys-snap.sh
und %2
werden another-script.sh
. Wenn Sie fg
oder bg
ohne Argumente verwenden, wird der Befehl für den +
in der jobs
obigen Ausgabe gekennzeichneten Job ausgeführt .
fg %1
wird sys-snap.sh
wieder in den Vordergrund gestellt, während another-script.sh
im Hintergrund verlassen.
Sie können die Ctrl- CSequenz ausgeben , um Jobs auszuführen, ohne sie mit dem kill
Befehl in den Vordergrund zu stellen . kill %1
Sendet das Äquivalent von Ctrl- Can sys-snap.sh
.
Wenn Sie die Bash-Shell verwenden, enthält der man bash
Befehl einen detaillierten Abschnitt unter der Überschrift "JOB-KONTROLLE", der ausführlicher beschrieben wird.
In Bezug auf den Namen sys-snap.sh
, unter Unix - Dateinamen beliebig (mit ein paar Ausnahmen wie Dynamic Loader - Dateien). Es ist nicht erforderlich, dass sie über bestimmte Dateierweiterungen verfügen, damit sie als Shell-Skript ausgeführt, andere Befehle wie perl
oder php
usw. aufgerufen werden. In diesem Fall handelt es sich in der Regel um .sh
ein Shell-Skript, das die Bourne-Shell verwendet /bin/sh
.
Der funktionale Teil von sys-snap.sh
(wenn Sie sich den Inhalt mit etwas wie dem less
Befehl ansehen ) ist der Shebang . In der ersten Zeile finden Sie wahrscheinlich eines von:
#! /bin/sh
#! /bin/bash
#! /usr/local/bin/bash
oder ähnliches. Grundsätzlich wird der Befehl nach dem #!
(wie /bin/sh
) ausgeführt, und der Inhalt der restlichen Skriptdatei wird zeilenweise eingespeist. Beachten Sie, dass die Datei auch ausführbar sein muss, chmod
damit Sie sie als Befehl ausführen können. Wenn die Berechtigungen nicht festgelegt wurden, shebang
hat das keine Auswirkung, da Sie entweder den Fehler erhalten würden:
bash: sys-snap.sh: command not found
oder wenn Sie es über einen expliziten Pfad ./sys-snap.sh
( .
dh das aktuelle Arbeitsverzeichnis) ausführen, erhalten Sie:
bash: ./sys-snap.sh: Permission denied
Die andere Alternative ist, es ohne Ausführungsberechtigungen zu belassen und explizit / bin / sh aufzufordern, es auszuführen:
/bin/sh sys-snap.sh &
&&
von einem einzelnen kaufmännischen und&
?