Maison > Article > développement back-end > La signification de "2>&1" dans le shell Linux
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!