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/?

Cheezsteak
quelle

Antworten:

12

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

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

Angus
quelle
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