Comment rediriger Stderr vers Stdout à Bash

Comment rediriger Stderr vers Stdout à Bash
Les commandes de Linux prennent une entrée de l'utilisateur, qui pourrait être un fichier ou n'importe quel attribut, et lors de l'exécution, ils donnent une sortie appelée sortie standard. La sortie standard pourrait être une sortie de réussite ou une sortie d'erreur; Les deux seront affichés sur votre terminal. Mais dans certains cas, vous souhaitez stocker des sorties standard dans un fichier pour tester ou déboguer du code. Dans Linux, ces sorties peuvent être redirigées vers un fichier, et le processus de capture appelé redirection.

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

  • stdin: Prend les commentaires de l'utilisateur via le clavier
  • stdout: Affiche la sortie à l'écran
  • stderr: Affiche les informations d'erreur à l'écran

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

ID numérique Nom
0 stdin
1 stdout
2 stderr

Expliquons un peu plus la redirection avec les détails:

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> stdout.SMS

La commande ci-dessus créera un fichier et placera la sortie standard de la commande «LS» dans la «stdout stdout.Fichier txt ».

Pour lire le «stdout.Fichier txt », utilisation:

$ Cat stdout.SMS

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

$ Cat myfile.txt 2> stderr.SMS

Pour voir le «Stderr.Fichier txt », utilisation:

$ Cat Stderr.SMS

Assurez-vous que l'utilisation de «2» sera plus grande que le panneau «>». Puisqu'il n'y a pas de «myfile.TXT "Fichier dans le répertoire, la commande" Cat "donnera une erreur qui sera annexée dans le" stderr.Fichier txt ».

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

$ ls 1> stdout.txt 2> stderr.SMS

La sortie de la commande «LS» sera écrite dans le «stdout.SMS«Fichier, mais le«stderr.SMS«Restera vide car il n'y aurait pas d'erreur.

Maintenant, faisons pour «Stderr.SMS":

$ Cat myfile.txt 1> stdout.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 de réussite 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 panneau «>». Dans ce guide, nous avons appris à utiliser ces clés numériques pour rediriger la sortie standard vers un fichier avec des exemples.