GNU/Linux >> Tutoriels Linux >  >> Linux

Que signifie l'esperluette à la fin d'une ligne de script Shell ?

sh sys-snap.sh &

Qu'est-ce que sh ?
Qu'est-ce que sys-snap.sh ?
Pourquoi je devrais mettre & à la fin de la ligne ?
Quelqu'un peut-il expliquer la syntaxe ?

Sans le & le script ne reviendra pas à l'invite tant que j'appuierai sur Ctrl +C .
Avec & Je peux appuyer sur Entrée et ça marche.

Réponse acceptée :

sh est le shell par défaut compatible Bourne (généralement bash ou dash)

sys-snap.sh est un script shell, qui contient des commandes qui sh s'exécute.
Comme vous ne publiez pas son contenu, je ne peux que deviner à partir de son nom, ce qu'il fait.
Je peux trouver un script lié à CPanel avec le même nom de fichier, qui crée un fichier journal avec tous les processus en cours, l'utilisation actuelle de la mémoire, l'état de la base de données, etc.
Si le script commence par une ligne shebang (#!/bin/sh ou similaire), vous pouvez le rendre exécutable avec chmod +x sys-snap.sh et démarrez-le directement en utilisant ./sys-snap.sh s'il se trouve dans le répertoire courant.

Avec & le processus démarre en arrière-plan, vous pouvez donc continuer à utiliser le shell et ne pas avoir à attendre que le script soit terminé.
Si vous l'oubliez, vous pouvez arrêter le processus en cours d'exécution avec Ctrl-Z et continuez en arrière-plan avec bg (ou au premier plan avec fg ).
Pour plus d'informations, voir contrôle des tâches


Linux
  1. Que signifie `:-` dans un script shell ?

  2. À quoi sert le Colon Builtin ':' ?

  3. Que fait la ligne '!/bin/sh -e' ?

  4. Que signifie [email protected] dans un script shell ?

  5. Que signifie &à la fin d'une commande Linux ?

Qu'est-ce que cela signifie d'être "compatible sh" ?

Que signifie une flèche (->) sur la ligne de commande ?

Que signifie le « rc » dans « .bashrc », etc. ?

Que signifie le dernier - (trait d'union) dans les options de `bash` ?

Que signifie la capacité ep ?

Que signifie un + à la fin des autorisations de ls -l ?