Leitet dies nach / dev / null um?


7

Ich habe dieses Skript im Arch-Wiki gefunden, dem ein ffmpegBefehl wie dieser vorangestellt ist

< /dev/null ffmpeg -i "$a" -qscale:a 0 "${a[@]/%flac/mp3}"

Ich verstehe den Befehl ffmpeg, es ist der < /dev/nullTeil. Soll es die ausführliche Ausgabe umleiten /dev/null/?

Antworten:


12

Nein ... es liest aus /dev/null. command < inputund < input commandsind gleichwertig.

(So ​​sind > output commandund command > outputübrigens.)


Nun bin ich verwirrter. Warum sollte es lesen /dev/null, wenn es /dev/nullnur nachgibt EOF. Warum nicht einfach benutzen EOF?
Cheezsteak

Das Umleiten stdinvon /dev/nullist der einfachste Weg, um eine sofortige EOF zu erhalten. Wie würden Sie es sonst tun?
Blacklight Shining

3
@PhilipWales, was ist EOF? Durch das Umleiten der Eingabe von /dev/nullwird sichergestellt, dass bei jedem Lesevorgang nichts zurückgegeben wird. Alternative, kürzer, aber weniger effizient ist:|ffmpeg ...
Stéphane Chazelas

3
@PhilipWales Das Umleiten von Eingaben nach / dev / null scheint übertrieben, aber es ist eine übliche Technik, um zu verhindern, dass das Programm versehentlich etwas aus dem Tastaturpuffer liest. Angenommen, Sie haben ein Programm, das einen längeren Vorgang abbricht, wenn es ein Escape von der Tastatur empfängt. In den meisten Terminals erzeugen Funktionstasten Escape-Sequenzen ... Das Lesen von / dev / null verhindert dann einen unbeabsichtigten Abbruch durch einen ungeschickten Benutzer, der versehentlich die falsche Taste drückt.
Tonny

@Tonny: Wie ist es übertrieben?
Keith Thompson
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.