Я набрал его по ошибке, но bash не печатал никаких ошибок (но создал пустой файл), поэтому я подумал, может, это действительно что-то значит? (например, date |> tmp.txt)
bash
io-redirection
Бдымыч2 Бдимыч2
источник
источник
date |> tmp.txt cmd2
? Потому что это меняет ответ.Ответы:
Кажется, это просто конвейер, где вторая часть - пустая команда, содержащая только перенаправление. Писать так, как это
date | >file
может облегчить интерпретацию. Пустая команда ничего не делает, но обрабатывает перенаправление, создавая файл.date >| file
с другой стороны, будет действовать как переопределение дляnoclobber
опции оболочки, которая не позволяет обычным>
перезаписывать существующие файлы.источник
Да, он не выдаст ошибку, потому что для bash
> file
означает перенаправление в файл с именемfile
. Поскольку в вашем случае нечего перенаправлять в файл, bash просто создаст имя файла, вfile
котором ничего нет.источник
my_file
содержит выводdate
.zsh
, когда есть только перенаправления и нет команды,zsh
запускает$NULLCMD
команду (cat
по умолчанию) или$READNULLCMD
(пейджер по умолчанию), если есть только входные перенаправления.