Redirection STDERR en utilisant la commande Tee dans Ubuntu

Redirection STDERR en utilisant la commande Tee dans Ubuntu

La commande tee prend l'entrée standard et l'envoie à un ou plusieurs fichiers et la sortie standard. La commande de tee est dérivée du tuyau T-SPLITTER. Il décompose simplement la sortie d'un programme afin qu'il puisse être affiché et enregistré dans un fichier. Il effectue les deux travaux simultanément, copie la sortie dans les fichiers ou variables donnés et affiche la sortie.

Syntaxe:

$ tee [Options] [Fichier]

Options:

  • -un: Ajouter (au lieu d'écraser les fichiers, ajoutez-les aux existants)
  • -je: ignorer les interruptions (ignorer les signaux qui interrompent)

Fichiers: il y a plusieurs fichiers. Les données de sortie sont écrites à chacun d'eux.

Le descripteur de fichier par défaut pour le processus d'écriture de messages d'erreur est stderr, souvent connu sous le nom d'erreur standard. Les erreurs standard peuvent être transmises à la ligne de commande en bash. Cet article concerne la redirection de la sortie de Stderr en utilisant la commande Tee dans différents scénarios.

Rediriger le stderr à l'aide de la commande tee

Des erreurs standard sont transmises à la ligne de commande en bash. Redirection STDERR pourrait vous permettre de capturer des messages d'erreur dans un fichier journal distinct ou d'éliminer complètement les messages d'erreur. Nous expliquerons la procédure pour rediriger Stderr en utilisant la commande Tee avec les exemples suivants.

Étape 1: Créez un fichier bash

Tout d'abord, créez un fichier bash «Linux.sh ”en utilisant la commande suivante:

$ nano linux.shot

Étape 2: Écrivez le code

Maintenant, écrivez le code suivant dans le fichier, ou vous pouvez écrire autre chose en fonction de vos besoins:

$ #!/ bac / bash
echo bonjour
1> & 2 Echo World

Étape 3: Vérifiez si le fichier bash fonctionne

Maintenant, vérifiez si le fichier bash fonctionne correctement ou si le code écrit est correct en exécutant la commande suivante dans le terminal:

$ ./ linux.shot

Le résultat donné produit le résultat correct, ce qui prouve que le code fonctionne correctement.

Exécutez une autre commande mentionnée ci-dessous pour vérifier le code de travail:

$ ./ linux.sh> / dev / null

Maintenant, exécutez la commande suivante pour vérifier le fonctionnement du code:

$ ./ linux.sh 2> / dev / null

Nous avons obtenu la production attendue; Cela signifie que le code est correct.

Étape 4: Redirigez le stderr vers la commande tee

Le> (…) (substitution du processus) établit un FIFO et le rend à la disposition du tee pour écouter. Ensuite, il utilise> (redirection de fichiers) pour envoyer le stdout de la commande au FIFO que votre premier tee est surveillé.

La commande suivante redirige Stderr vers le tee. Il redirige la sortie vers «/ tmp / log»:

$ ./ linux.sh 2 >> (tee / tmp / log)

Maintenant, sort le fichier dans lequel nous avons redirigé la sortie.

$ cat / tmp / log

Par défaut, Tee imprime à STDOUT. Imprimez ceci à stderr.

$ (./ linux.sh 2 >> (tee / tmp / log> & 2))> / dev / null

Conclusion

La commande Tee lit les données d'un fichier / fichiers d'entrée et écrit la sortie reçue dans de nombreux fichiers. Les erreurs de redirection vers STDERR peuvent être effectuées à l'aide de la commande TEE. Il existe de nombreuses façons de rediriger la sortie. Mais dans cet article, nous avons décrit une procédure, à l'aide d'un exemple, pour rediriger Stderr vers le tee à l'aide d'un fichier bash et afficher la sortie sur Ubuntu (système d'exploitation Linux). Vous trouverez cet article utile pour rediriger STDERR en utilisant la commande TEE.