Maison  >  Article  >  développement back-end  >  La signification de "2>&1" dans le shell Linux

La signification de "2>&1" dans le shell Linux

巴扎黑
巴扎黑original
2017-06-26 15:20:132003parcourir

Vous pouvez souvent le voir dans les tâches planifiées. Par exemple, l'exemple de tâche planifiée de notre entreprise :

*/2 * * * * root cd /opt/xxxx/test_S1/html/xxxx/admin; php index.php task testOne >/dev/null 2>&1*/2 * * * * root cd /opt/xxxx/test_S1/html/xxxx/admin; php index.php task testTwo >/dev/null 2>&1

Pour & 1, plus précisément, il doit s'agir du descripteur de fichier 1, et 1 identifie la sortie standard, stdout.
Pour 2, signifie erreur standard, stderr.
2>&1 signifie rediriger l’erreur standard vers la sortie standard. Ici, la sortie standard a été redirigée vers /dev/null. Ensuite, l'erreur standard sera également affichée dans /dev/null

Vous pouvez considérer /dev/null comme un "trou noir". Il équivaut à un fichier en écriture seule. être perdu pour toujours. Et si vous essayez d'en lire le contenu, vous n'obtiendrez rien

De temps en temps, vous pouvez ajouter & à la fin de la commande pour laisser le programme s'exécuter en arrière-plan.

Pourquoi 2>&1 est-il écrit à la fin ?

index.php task testOne >/dev/null 2>&1

Nous pouvons comprendre que le côté gauche est la sortie standard, d'accord, maintenant la sortie standard est directement entrée dans /dev/null, et 2> ;&1 redirige l'erreur standard vers la sortie standard, donc lorsque le programme génère une erreur, cela équivaut à l'erreur circulant vers la gauche, et le côté gauche est toujours entré dans /dev/null .

peut être compris comme, s'il est écrit au milieu, il bloquera le fichier de sortie spécifié en sortie standard

Vous pouvez utiliser

ls 2>1 Test, l'erreur selon laquelle il n'y a pas de fichier 2 ne sera pas signalée, mais un fichier vide 1 sera affiché ;
ls xxx 2>1 test, l'erreur selon laquelle il n'y a pas de fichier xxx sera affichée ; être sorti sur 1 ;
ls xxx 2>&1 test, le fichier 1 ne sera pas généré, mais l'erreur ira à la sortie standard
ls xxx >out.txt 2>&1, cela peut en fait être remplacé par ls xxx 1>out.txt 2>&1;Symbole de redirection>La valeur par défaut est 1, et les erreurs et la sortie sont transmises à out.txt.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn