Comprendre 2> & 1 dans Bash A débutant Guide

Comprendre 2> & 1 dans Bash A débutant Guide

Bash est une coque populaire utilisée dans la plupart des distributions Linux. Il fournit diverses techniques de redirection d'E / S qui permettent aux utilisateurs de contrôler comment les entrées et les sorties sont traitées dans leurs commandes et scripts. L'une des techniques de redirection d'E / S les plus couramment utilisées est 2> & 1, qui redirige l'erreur standard (stderr) vers la sortie standard (stdout).

Dans cet article, nous fournirons un guide pour le débutant pour comprendre 2> & 1 bas.

Qu'est-ce que 2> & 1?

2> & 1 Un opérateur de redirection d'E / S est-il utilisé dans Bash qui redirige le flux Stderr vers la même destination que le flux stdout. En d'autres termes, il fusionne la sortie d'erreur avec la sortie régulière, ce qui facilite la capture et la gestion des erreurs.

La syntaxe pour l'utilisation 2> & 1 est comme suit:

Commande 2> & 1
1Commande 2> & 1

Dans cette syntaxe, 'commande' est la commande qui est exécutée, et '2> & 1' L'opérateur de redirection d'E / S qui redirige STDERR vers Stdout.

Pourquoi utiliser 2> & 1?

En utilisant 2> & 1 est utile pour capturer et gérer les erreurs dans les scripts bash. En redirigeant Stderr vers Stdout, vous pouvez capturer à la fois la sortie régulière et la sortie d'erreur dans un seul flux, ce qui facilite l'analyse et gérer les erreurs. Cela peut être particulièrement utile dans les scripts qui nécessitent une gestion des erreurs, où vous devez savoir si une commande a exécuté avec succès ou a rencontré une erreur.

Exemple d'utilisation

Voici un exemple de comment utiliser 2> & 1 Dans un script bash:

#!/ bin / bash ls / not_a_directory> / dev / null 2> & 1 si [$? -NE 0]; puis écho "Erreur: répertoire non trouvé" fi
123456#!/ bin / bash ls / not_a_directory> / dev / null 2> & 1if [$? -NE 0]; puis écho "Erreur: répertoire non trouvé" fi

Dans cet exemple, le 'LS' La commande est exécutée sur un répertoire inexistant '/ not_a_directory'. La sortie de cette commande est redirigea vers '/ dev / null', qui le rejette. Le stderr La sortie est redirigea vers Stdout en utilisant 2> & 1, ce qui lui permet d'être capturé dans l'instruction if. Si le statut de sortie ($?) de la commande n'est pas égal à 0, un message d'erreur est imprimé.

Conclusion

En conclusion, 2> & 1 est un opérateur de redirection d'E / S utilisé dans Bash qui redirige stderr pour stdout. Il est utile pour capturer et gérer les erreurs dans les scripts bash, où vous devez savoir si une commande a exécuté avec succès ou a rencontré une erreur. En fusionnant la sortie d'erreur avec la sortie régulière, il est plus facile d'analyser et de gérer les erreurs. Comprendre les bases de 2> & 1 est essentiel pour quiconque travaille avec des scripts et des commandes bash.