Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Exec-Operationsdateideskriptor unter Linux

Exec-Operationsdateideskriptor unter Linux

ringa_lee
ringa_leeOriginal
2017-06-23 11:21:352338Durchsuche

Jede geöffnete Datei in Linux ist mit einem Dateideskriptor verknüpft. Bei Bedarf können wir mit dem Befehl exec eine Zahl größer als 3 als Datei angeben

Linux-Standarddateideskriptor

Bei jedem Öffnen öffnet eine Shell die standardmäßigen drei Dateideskriptoren 0, 1 und 2, die jeweils Standardeingabe, Standardausgabe und Standardfehlerausgabe darstellen.

exec-Befehl zugeordneter Dateideskriptor

exec 5>/tmp/a.txt-Lesemodus
exec 5exec 5<> ; /tmp/a.txt Lese- und Schreibmodus
exec 5<&-;exec5>&- Dateideskriptor schließen

Anwendungsfall: Ordnen Sie die Standardausgabe im Shell-Skript erneut zu, um das Protokoll aufzuzeichnen die angegebene Datei

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

Führen Sie dieses Skript aus. Die Echoausgabe im Skript wird in die Datei /tmp/abc ausgegeben.
Die zweite Zeile des Skripts verwendet 4>&1, um den Dateideskriptor aufzuzeichnen der Standardausgabe zur einfachen Ausführung. Stellen Sie nach Abschluss die Standardausgabe wieder her. Sie können auch exec 1>/dev/tty

verwenden, um die Standardausgabe wiederherzustellen 🎜>echo „Hallo“ >&4 Beschreiben Sie die Datei nur mit >>

    Ob die Datei gelöscht werden soll, erfordert die Zuordnung des Dateideskriptors zur Datei im Befehl exec. Bei Verwendung von >> wird beispielsweise das folgende Skript verwendet:
  1. , dann ist der Inhalt der Datei /tmp/abc nach jeder Ausführung des Skripts 123n456
  2. Wenn die erste Zeile durch exec 4>>/tmp/abc ersetzt wird angehängt

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

    Der Löschvorgang der Datei wird während der Ausführung des exec-Befehls ausgeführt

Das obige ist der detaillierte Inhalt vonExec-Operationsdateideskriptor unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn