Ich habe es versehentlich eingegeben, aber bash hat keine Fehler gedruckt (sondern eine leere Datei erstellt), also dachte ich, dass es vielleicht tatsächlich etwas bedeutet? (zB Datum |> tmp.txt)
bash
io-redirection
Bdimych2 Bdimych2
quelle
quelle
date |> tmp.txt cmd2
? Weil das die Antwort ändert.Antworten:
Dies scheint nur eine Pipeline zu sein, bei der der zweite Teil ein leerer Befehl ist, der nur die Umleitung enthält. Schreiben,
date | >file
um die Interpretation zu erleichtern. Der leere Befehl verarbeitet nur die Umleitung und erstellt die Datei.date >| file
Auf der anderen Seite würde dies als Überschreibung für dienoclobber
Shell-Option fungieren , wodurch verhindert wird, dass der Regular>
vorhandene Dateien überschreibt.quelle
Ja, es wird kein Fehler ausgegeben
> file
, da Bash bedeutet, in eine Datei mit dem Namen umzuleitenfile
. Da in Ihrem Fall nichts in die Datei umgeleitet werden muss, erstellt bash lediglich einen Dateinamen,file
in dem sich nichts befindet.quelle
my_file
Enthält nach dem Befehl die Ausgabe vondate
.zsh
, wenn es nur Umleitungen und kein Befehl ist,zsh
wird mit dem$NULLCMD
Befehl (cat
voreingestellt) oder$READNULLCMD
(a - Pager Standardeinstellung) wenn es nur Eingang Umleitungen.