#1 Le 30/05/2017, à 10:25
- CptUsagi
[RESOLUT] Exit code d'une commande redirigé
Bonjour à tous,
Je suis actuellement entrain de créer un script et je me trouve devant un problème pour lequel je n'ai jusqu'à lors trouvé aucunes solutions.
Dans mon script, je dois exécuter une commande (grep) et je ne voudrais pas qu'il affiche d'output. Donc j'ai simplement redirigé stdout et stderr vers /etc/null. Mais par la suite j'aimerais pouvoir vérifier l'exit code que ma retourné grep, néanmoins j'ai l'impression que je reçois l'exit code de la redirection.
#!/bin/bash -
[...]
grep $2 $fichier &> /etc/null
if [[ $? -ge 1 ]]; then exit 1; fi
[...]
La variable $? me retourne l'exit code de la redirection or je voudrais celui de grep.
Y a-t-il un moyen de l'obtenir (pas forcément avec $?) ou est-ce que mon approche est totalement erroné ?
Dernière modification par CptUsagi (Le 30/05/2017, à 11:14)
Hors ligne
#2 Le 30/05/2017, à 11:00
- pingouinux
Re : [RESOLUT] Exit code d'une commande redirigé
Bonjour,
Ce n'est pas /etc/null, mais /dev/null qu'il faut utiliser.
Le plus simple pour avoir un grep silencieux
grep -q "$2" "$fichier"
Ajouté :
Et pour avoir l'équivalent de ce que tu fais en #1
grep -q "$2" "$fichier" || exit 1
Dernière modification par pingouinux (Le 30/05/2017, à 11:04)
Hors ligne
#3 Le 30/05/2017, à 11:06
- CptUsagi
Re : [RESOLUT] Exit code d'une commande redirigé
*Facepalm* Rah, le boulet
Merci pingouinux, ça a résolut mon problème.
Hors ligne