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

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

ringa_lee
Libérer: 2017-06-23 11:21:35
original
2436 Les gens l'ont consulté

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
Copier après la connexion

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>&-
    Copier après la connexion


    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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal