Linux Communauté Sécurité et réseaux Debian Découverte
Système Divers Administration  







De l’utilisation des tuyaux

vendredi 8 février 2002, par regit




Parfois, il n’est pas possible d’utiliser les tests comme if dans des commandes. Pour s’en passer, on peut utiliser une redirection du flux d’erreur vers la sortie standard, puis passer ce flux à grep pour tester la présence de la chaine d’erreur.

Commençons par un exemple simple :

cat toto 2>&1 | ( grep -v Aucun || touch toto )
On veut envoyer le contenu du fichier "toto" sur la sortie standard et si il n’existe pas on le crée.
Un exemple assez complexe qui renvoie un nom complet depuis le login et traite les cas d’erreur :
finger `env | (grep -E "ZCVSUSERNAME=.+" || echo "=erreur") | cut -d= -f2` 2>&1 \ # Assemblage des flux | head -1 | cut -d : -f3 | cut -b2- \ # Récupération des informations significatives | (grep -v "no such user" || echo "Inconnu") # Si erreur de finger ("no such user") on renvoie "Inconnnu"

Répondre à cet article

regit



Da Trucs for Linux | PLAN DU SITE | ADMIN