Dies ist job controlunter Unix bekannt. Das &weist die Shell an, den Befehl in den Hintergrund zu stellen. Dies bedeutet, dass der sys-snap.shBefehl 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 jobsBefehl 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.shSie zu Ihrer Eingabeaufforderung zurück. Anschließend können Sie Hintergrund es (als ob Sie sie ausgestellt hatte mit der &) mit dem bgBefehl, 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, %1werden sys-snap.shund %2werden another-script.sh. Wenn Sie fgoder bgohne Argumente verwenden, wird der Befehl für den +in der jobsobigen Ausgabe gekennzeichneten Job ausgeführt .
fg %1
wird sys-snap.shwieder in den Vordergrund gestellt, während another-script.shim Hintergrund verlassen.
Sie können die Ctrl- CSequenz ausgeben , um Jobs auszuführen, ohne sie mit dem killBefehl in den Vordergrund zu stellen . kill %1Sendet das Äquivalent von Ctrl- Can sys-snap.sh.
Wenn Sie die Bash-Shell verwenden, enthält der man bashBefehl 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 perloder phpusw. aufgerufen werden. In diesem Fall handelt es sich in der Regel um .shein 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 lessBefehl 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, chmoddamit Sie sie als Befehl ausführen können. Wenn die Berechtigungen nicht festgelegt wurden, shebanghat 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&?