Jai un exercice pour mettre dans un fichier des données (* conf de certains répertoires) et je dois le faire en arrière-plan. Je lai fait et je me demande quelle est la signification des messages de sortie:

[A@localhost tests]$ ls -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 & 

Entrez monte cette ligne:

[1] 2533 

quest-ce que cela signifie? Après une autre entrée, un autre message apparaît.

[A@localhost tests]$ [1]+ Exit 2 ls --color=auto -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 

Quest-ce que cela signifie? Quest-ce que « Exit 2 »?

Entrez les résultats dune vérification – tout semble correct.

[A@localhost tests]$ [A@localhost tests]$ ls -l test1_6_conf.txt -rw-rw-r--. 1 A A 2641 Nov 22 14:19 test1_6_conf.txt [A@localhost tests]$ 

Jutilise CentOS 6.4, Émulateur de terminal Gnome.

Réponse

Quest-ce que cela signifie? Quest-ce que « Sortie 2 »?

Il sagit de létat de sortie de ls. Voir man pour ls:

 Exit status: 0 if OK, 1 if minor problems (e.g., cannot access subdirectory), 2 if serious trouble (e.g., cannot access command-line argument). 

Je suppose que la raison en est que vous avez beaucoup de fichiers * conf dans /etc et pas de fichiers * conf dans / usr. En fait ls -ld /usr/*conf; aurait eu le même effet.

Donc, si je le fais sur mon ordinateur ls pour un existant file:

ls main.cpp; echo $? main.cpp 0 

Et pour un fichier qui nexiste pas:

ls main.cppp; echo $? ls: cannot access main.cppp: No such file or directory 2 

Ou comme processus darrière-plan ls pour un fichier qui nexiste pas:

>ls main.cppp & [1] 26880 ls: cannot access main.cppp: No such file or directory [1]+ Exit 2 ls main.cppp 

Commentaires

  • O! Merci. Maintenant, jai ' réalisé que ls /usr/*conf renvoie 2 car il ny a aucun nom de fichier contenant " conf ".
  • @ALZ, notez quil renvoie 2 car il ne trouve pas le fichier appelé /usr/*conf. Et bash lui passe ce nom de fichier car il ne peut ' trouver les fichiers qui correspondent à ce modèle. De meilleurs shells comme zsh auraient renvoyé une erreur " no match " et ne sexécuteraient pas ls du tout.

Réponse

Cette commande est terminée avec un statut de sortie différent de 0 (succès).

Essayez de ne pas mettre (&) à la fin , pour voir ce qui se passe.

Si cette commande prend beaucoup de temps lors de son exécution, vous pouvez la vérifier avec:

lnx #> jobs -l

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *