bash
не жалуется, если вы запускаете такую команду, как
$ < some-file-that-exists
Кажется, ничего не происходит.
Вы также можете использовать
$ <<<"any string"
и даже процесс замещения.
Так что именно это делает, и почему это разрешено. Может ли это быть полезным для чего-либо?
<
даст вам ошибку (zsh: parse error near `\n'
), так как аргумент не дается.bash
, но это интересноless
.Ответы:
<
устанавливает перенаправление для команды, которая может происходить до или после инструкций перенаправления. Т.е.работает так же как
Но если вы не даете команду, bash устанавливает перенаправление и больше ничего не делает. Для перенаправления ввода это равносильно тому, что вы видели, ничего, если файл существует и доступен для чтения. Если файл не существует или не читается, bash выдаст ошибку. Для перенаправления вывода, выходной файл будет создан, если он не существует. Любой существующий выходной файл будет усечен, если
>
используется; нет усечения, если>>
используется.источник
< file wc
противwc < file
?<читает из стандартного ввода по умолчанию или из файла. ваше выражение ничего не делает с вводом, потому что вы ничего не делали после прочтения.
если вы в конце сделаете выходной файл <some-file-that-существующие>, то увидите, что вы только что прочитали содержимое первого файла и записали его во второй файл.
<<< здесь в формате doc, поэтому он читает из строки, а не из файла. кошка <<< "любая строка", чтобы увидеть, что вы прочитали.
источник