Лучшая практика для передачи одной строки ввода в стандартный ввод команды с помощью bash - PullRequest
2 голосов
/ 14 ноября 2011

У меня есть программа командной строки, которая принимает ввод из стандартного ввода. Как лучше всего передать строку stdin в эту программу, используя bash? У меня есть два подхода, которые выполняют эту работу, но оба они кажутся немного неуклюжими.

Я проиллюстрирую свои подходы, используя тупой пример подсчета трех слов.

используя здесь документ:

wc -w <<EOS
one two three
EOS

с использованием эха:

echo 'one two three' | wc -w

Как я сказал, оба они кажутся немного неуклюжими. Есть ли более чистый способ сделать это?

Ответы [ 2 ]

6 голосов
/ 14 ноября 2011
wc -w <<<"one two three"

- более короткий путь.

4 голосов
/ 14 ноября 2011

Я видел, что echo используется чаще всего.

Третий вариант, который может быть только Bash (я не проверял), это "здесь-строка", <<<

wc -w <<<"Hello people of StackOverflow"

(вы можете узнать больше об этом в разделе Here Strings руководства Bash)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...