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
Bei jedem Öffnen öffnet eine Shell die standardmäßigen drei Dateideskriptoren 0, 1 und 2, die jeweils Standardeingabe, Standardausgabe und Standardfehlerausgabe darstellen.
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
#!/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!