Napisałem go przez pomyłkę, ale bash nie wydrukował żadnych błędów (ale utworzył pusty plik), więc pomyślałem, że może to coś znaczy? (np. data |> tmp.txt)
bash
io-redirection
Bdimych2 Bdimych2
źródło
źródło
date |> tmp.txt cmd2
? Ponieważ to zmienia odpowiedź.Odpowiedzi:
To wydaje się być tylko potokiem, w którym druga część jest pustym poleceniem, zawierającym tylko przekierowanie. Pisanie tego jako
date | >file
może ułatwić interpretację. Puste polecenie nie robi nic, tylko przetwarza przekierowanie, tworząc plik.date >| file
z drugiej strony działałoby jako przesłonięcienoclobber
opcji powłoki, co zapobiega regularnemu>
nadpisywaniu istniejących plików.źródło
Tak, nie wyrzuci błędu, ponieważ dla bash
> file
oznacza przekierowanie do pliku o nazwiefile
. Ponieważ w twoim przypadku nie ma nic do przekierowania do pliku, bash po prostu utworzy nazwę plikufile
bez niczego.źródło
my_file
zawiera wynik działaniadate
.zsh
, gdy są tylko przekierowania i nie ma polecenia,zsh
uruchamia$NULLCMD
polecenie (cat
domyślnie) lub$READNULLCMD
(domyślnie pager), jeśli są tylko przekierowania wejściowe .