Maison  >  Article  >  Opération et maintenance  >  descripteur de fichier d'opération d'exécution sous Linux

descripteur de fichier d'opération d'exécution sous Linux

ringa_lee
ringa_leeoriginal
2017-06-23 11:21:352404parcourir

Chaque fichier ouvert sous Linux est associé à un descripteur de fichier. Si nécessaire, nous pouvons utiliser la commande exec pour spécifier un nombre supérieur à 3 comme fichier

Descripteur de fichier par défaut Linux

. Chaque fois qu'il est ouvert, un shell ouvrira les trois descripteurs de fichier par défaut 0, 1 et 2, qui représentent respectivement l'entrée standard, la sortie standard et la sortie d'erreur standard.

descripteur de fichier associé à la commande exec

exec 5>/tmp/a.txt mode de lecture
exec 5exec 5<> ; /tmp/a.txt Mode de lecture et d'écriture
exec 5<&-;exec5>&- Fermer le descripteur de fichier

Cas d'application : Réassocier la sortie standard dans le script shell pour enregistrer le journal dans le fichier spécifié

#!/bin/bash
exec 4>&1         #用4记录标准输出
exec 1>/tmp/abc   #重定向标准输出
echo "123"
echo "456"
exec 1>&4         #恢复标准输出
exec 4>&-         #关闭4

Exécutez ce script, la sortie d'écho dans le script sera sortie dans le fichier /tmp/abc
La deuxième ligne du script utilise 4>&1 pour enregistrer le descripteur de fichier de la sortie standard pour une exécution facile Une fois terminé, restaurez la sortie standard. Vous pouvez également utiliser exec 1>/dev/tty

pour restaurer la sortie standard. 🎜>echo "bonjour" >&4 Décrire le fichier Utilisez uniquement > lors de la saisie du contenu dans le caractère. Vous ne pouvez pas utiliser >> Pour le moment, >

    L'effacement du fichier nécessite d'associer le descripteur de fichier au fichier dans la commande exec. Lors de l'utilisation de >>,
  1. , par exemple, le script suivant :

  2. , puis après chaque exécution du script, le contenu du fichier /tmp/abc sera 123n456
  3. Si le premier Remplacez la deuxième ligne par exec 4>>/tmp/abc et ce sera. annexé


    #!/bin/bash
    exec 4>/tmp/abc
    echo "123" >&4
    echo "456" >&4
    exec 4>&-


    L'opération d'effacement du fichier est effectuée lors de l'opération de la commande exec

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