Bash - rediriger à la fois la sortie standard et l'erreur standard vers le même fichier

Bash - rediriger à la fois la sortie standard et l'erreur standard vers le même fichier

La coquille de bash est la coque la plus populaire sur les systèmes Linux, et pour utiliser efficacement la coque, vous avez besoin d'un peu de connaissances sur les redirections de coquille de bash. C'est également une étape essentielle pour apprendre les scripts bash.

Dans ce guide, nous allons montrer comment rediriger la sortie standard et l'erreur standard vers le même fichier sur la ligne de commande Shell Bash. Cela comprendra plusieurs exemples afin que vous puissiez choisir la bonne méthode dans n'importe quel scénario.

Dans ce tutoriel, vous apprendrez:

  • Comment rediriger la sortie standard et l'erreur standard vers le même fichier
  • Comment rediriger la sortie standard et l'erreur standard vers le fichier et le terminal
  • Comment rediriger la sortie standard et l'erreur standard vers / dev / null
Divers exemples de bash pour rediriger la sortie standard et l'erreur standard vers le même fichier Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Toute distribution Linux
Logiciel Coquille
Autre Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande.
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Rediriger la sortie standard et l'erreur standard



Couvrons d'abord comment rediriger la sortie standard vers un fichier. Si vous avez déjà ces bases de bash, n'hésitez pas à passer à l'exemple de commandes.

Vous utilisez normalement > pour la redirection et pour ajouter vers un fichier existant, vous utiliseriez >>.

$ echo "LinuxConfig.org "> new-fichier.txt et $ echo "LinuxConfig.org ">> file existant.SMS 

Avec ces commandes, la sortie standard serait redirigée vers le fichier et l'erreur standard est affichée sur votre écran. Dans le cas où vous êtes nouveau dans Linux, la «sortie standard» n'est que la sortie habituelle et attendue de l'exécution d'une commande ou d'un script, et «l'erreur standard» est tous les messages d'erreur qui se produisent.

Pour rediriger l'erreur standard à la place, nous pouvons utiliser 2>. Cela fera apparaître la sortie standard sur notre écran et envoyer tous les messages d'erreur à un fichier.

$ echo "LinuxConfig.org "2> new-file.SMS 

Avec les bases à l'écart, nous couvrirons désormais divers exemples de commandes pour rediriger la sortie standard et l'erreur standard vers le même fichier.

  1. Pour rediriger la sortie standard et l'erreur standard vers le même fichier, utilisez la syntaxe de commande suivante. Plus précisément, ajoutez 2> & 1 à la fin de votre commande habituelle.
    $ echo "LinuxConfig.org "> new-fichier.txt 2> & 1 


  2. Un moyen légèrement plus facile d'atteindre cette fonctionnalité est avec le &> opérateur. Notez que cela fonctionne bien dans Bash et Zsh, mais pas d'autres coquilles, alors utilisez l'exemple précédent pour une compatibilité maximale avec d'autres systèmes.
    $ echo "LinuxConfig.org "et> nouveau fichier.SMS 
  3. Pour ajouter la sortie standard et l'erreur standard dans un fichier qui existe déjà, utilisez la même syntaxe ci-dessus, mais avec le >> opérateur de redirection.
    $ echo "LinuxConfig.org ">> file existant.txt 2> & 1 
  4. Pour supprimer la sortie standard et l'erreur standard de votre terminal et éviter également de générer un fichier, vous pouvez les rediriger tous les deux vers / dev / null.
    $ echo "LinuxConfig.org "> / dev / null 2> & 1 
  5. Pour rediriger la sortie standard vers un fichier et rediriger l'erreur standard vers un autre fichier, utilisez la syntaxe suivante.
    $ echo "LinuxConfig.org "2> std-err.txt 1> std-out.SMS 


  6. Si vous souhaitez rediriger la sortie standard et l'erreur standard vers le même fichier, tout en les voyant tous les deux dans votre terminal, nous pouvons obtenir un peu d'aide à partir du tee commande.
    $ echo "LinuxConfig.org "2> & 1 | tee new-fichier.SMS 
  7. Si vous souhaitez voir la sortie standard et l'erreur standard sur votre écran, tandis que colocataire eux au même fichier, nous pouvons utiliser le -un (Ajouter) l'option avec tee.
    $ echo "LinuxConfig.org "2> & 1 | tee -a file existant.SMS 

Réflexions de clôture

Dans ce guide, nous avons vu comment rediriger à la fois la sortie standard et l'erreur standard vers le même fichier en bash. Cela comprenait plusieurs opérateurs de bash différents, selon que nous voulons créer un nouveau fichier ou ajouter à un fichier existant. Nous avons également appris à utiliser le tee Commande afin de voir la sortie standard et l'erreur standard sur notre terminal tout en les écrivant dans un fichier. Vous êtes maintenant un expert dans la redirection de sortie standard et une erreur standard vers un fichier en bash, et vous êtes beaucoup plus proche de la maîtrise du shell entièrement.

Tutoriels Linux connexes:

  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à installer sur Ubuntu 20.04
  • Masterring Bash Script Loops
  • Boucles imbriquées dans les scripts bash
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Ubuntu 20.04 Guide
  • Comment doubler Kali Linux et Windows 10
  • Choses à installer sur Ubuntu 22.04
  • Tutoriel de débogage GDB pour les débutants