Ceci est connu sous le nom job controlunix. Il &informe le shell de mettre la commande en arrière-plan. Cela signifie qu'il continue à exécuter la sys-snap.shcommande mais vous ramène à votre shell pour vous permettre de continuer à exécuter des commandes parallèles.
Vous pouvez voir la liste des tâches en cours d'exécution avec la jobscommande. Vous pouvez revenir à la commande (mettre au premier plan) en utilisant la fgcommande. Ce qui ramène la commande à l'état où vous ne voyez aucune invite et vous devez émettre Ctrl- Cpour tuer le processus. Vous pouvez cependant suspendre (mettre en pause) ce processus en lançant Ctrl- Z. Cela fera une pause sys-snap.shet vous ramènera à votre invite. Vous pouvez ensuite fond (comme si vous aviez publié ce avec le &) avec la bgcommande, et il repreniez en cours d' exécution à partir de son état , le mis en pause Ctrl- Zil avait mis.
Notez que vous pouvez avoir plusieurs emplois à la fois (comme indiqué par jobs):
[1]- Running sys-snap.sh &
[2]+ Running another-script.sh &
Vous pouvez arrière - plan et de premier plan en les utilisant leur numéro de travail, %1vous serez sys-snap.shet %2serez another-script.sh. Si vous utilisez fgou bgsans arguments, la commande sera exécutée sur le travail marqué par +dans le jobsrésultat ci-dessus.
fg %1
sera remis sys-snap.shau premier plan, tout en laissant another-script.shà l'arrière-plan.
Vous pouvez utiliser la séquence Ctrl- Cpour exécuter des tâches sans avoir à les mettre en avant avec la killcommande, vous kill %1enverrez l'équivalent de Ctrl- Cà sys-snap.sh.
Si vous utilisez bash shell, la man bashcommande comporte une section détaillée dans la section intitulée "CONTRÔLE DES TRAVAUX" pour aller plus en détail.
En ce qui concerne le nom de sys-snap.sh, les noms de fichiers sous unix sont arbitraires (à quelques exceptions près, comme les fichiers de chargeur dynamique). Il n'y a pas d' obligation pour eux d'avoir extentions de fichiers spécifiques pour les faire fonctionner comme un script shell, appeler d' autres commandes telles que perlou phpetc. Il est généralement utilisé pour fournir la clarté, que dans ce cas, il est .shun script shell en utilisant le Bourne Shell /bin/sh.
La partie fonctionnelle de sys-snap.sh(quand vous regardez son contenu avec quelque chose comme la lesscommande) est le Shebang . Sur la première ligne, vous trouverez probablement l'un des suivants:
#! /bin/sh
#! /bin/bash
#! /usr/local/bin/bash
ou similaire. En termes simples, une commande après le #!(telle que /bin/sh) est exécutée et le contenu du reste du fichier de script lui est transmis ligne par ligne. Notez que le fichier doit également être défini comme exécutable chmodpour que vous puissiez l'exécuter en tant que commande. Si les autorisations n'étaient pas définies, alors le shebangn'a aucun effet, car vous obtiendriez soit l'erreur:
bash: sys-snap.sh: command not found
ou si vous l'avez exécuté par chemin explicite ./sys-snap.sh( .c'est-à-dire le répertoire de travail actuel), vous obtiendrez:
bash: ./sys-snap.sh: Permission denied
L'autre alternative est de le laisser sans les autorisations d'exécution et de demander explicitement à / bin / sh de l'exécuter:
/bin/sh sys-snap.sh &
&&différente d'une seule esperluette&?