Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/05/2017, à 11: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, à 12:14)

Hors ligne

#2 Le 30/05/2017, à 12: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, à 12:04)

Hors ligne

#3 Le 30/05/2017, à 12:06

CptUsagi

Re : [RESOLUT] Exit code d'une commande redirigé

*Facepalm* Rah, le boulet lol

Merci pingouinux, ça a résolut mon problème.

Hors ligne