Programmation BASH

Comment rediriger stderr vers stdout dans Bash

Comment rediriger stderr vers stdout dans Bash
Les commandes sous Linux prennent une entrée de l'utilisateur, qui peut être un fichier ou n'importe quel attribut, et lors de l'exécution, elles donnent une sortie appelée sortie standard. La sortie standard peut être une sortie réussie ou une sortie d'erreur ; les deux seront affichés sur l'écran de votre terminal. Mais dans certains cas, vous souhaitez stocker les sorties standard dans un fichier pour tester ou déboguer le code. Sous Linux, ces sorties peuvent être redirigées vers un fichier et le processus de capture appelé redirection.

Chaque processus sous Linux produit trois flux de données, « stdin », « stdout » et « stderr » :

Chaque flux de données a un identifiant numérique :

Identifiant numérique Nom
0 standard
1 sortie standard
2 stderr

Expliquons un peu plus la redirection en détail :

Comment rediriger la sortie standard et l'erreur standard dans Bash :

Pour rediriger la sortie standard de la commande, nous utiliserons « 1 » avec un opérateur de redirection supérieur au signe « > » :

$ls 1> sortie standard.SMS

La commande ci-dessus créera un fichier et placera la sortie standard de la commande "ls" dans le "stdout.txt" fichier.

Pour lire le "stdout.txt", utilisez :

$cat stdout.SMS

Nous pouvons également rediriger l'erreur standard vers un fichier en utilisant la commande :

$cat monfichier.txt 2> stderr.SMS

Pour afficher le "stderr.txt", utilisez :

$cat stderr.SMS

Assurez-vous que l'utilisation "2" sera supérieure au signe ">". Comme il n'y a pas de "monfichier.txt" dans le répertoire, la commande "cat" donnera une erreur qui sera ajoutée dans le "stderr.txt" fichier.

Ces sorties standard peuvent également être redirigées avec une seule commande, utilisez :

$ls 1> sortie standard.txt 2> stderr.SMS

La sortie de la commande "ls" sera écrite dans le "sortie standard.SMS", mais le "stderr.SMS” restera vide car il n'y aurait pas d'erreur.

Faisons maintenant pour "stderr.SMS":

$cat monfichier.txt 1> sortie standard.txt 2> stderr.SMS

Utilisez la commande mentionnée ci-dessous pour lire "stderr.SMS."

$cat stderr.SMS

Et bien sûr, "stdout.txt" sera vide.

Conclusion:

La commande Linux lors de l'exécution donne une sortie standard qui pourrait être une sortie réussie ou une sortie d'erreur. Généralement, ces sorties ne peuvent pas être redirigées à l'aide d'opérateurs de redirection ; nous devons utiliser des identifiants numériques spécifiques avec le signe ">". Dans ce guide, nous avons appris à utiliser ces touches numériques pour rediriger la sortie standard vers un fichier avec des exemples.

Comment utiliser Xdotool pour stimuler les clics de souris et les frappes sous Linux
Xdotool est un outil de ligne de commande gratuit et open source pour simuler les clics de souris et les frappes. Cet article couvrira un bref guide s...
Top 5 des produits de souris d'ordinateur ergonomiques pour Linux
L'utilisation prolongée de l'ordinateur provoque-t-elle des douleurs au poignet ou aux doigts? Vous souffrez de raideurs articulaires et devez constam...
Comment modifier les paramètres de la souris et du pavé tactile à l'aide de Xinput sous Linux
La plupart des distributions Linux sont livrées avec la bibliothèque "libinput" par défaut pour gérer les événements d'entrée sur un système. Il peut ...