Какое использование для << перенаправления в оболочке TCSH

Я понимаю < перенаправление ввода и два > / >> перенаправления вывода (двойное добавление содержимого в файл). Но я не понимаю << двойное перенаправление ввода.

Например echo "cat < input | wc > output" | tcsh создайте этот выходной файл: 2 2 11 но с echo "cat << input | wc > output" | tcsh это производит этот выходной файл: 0 0 0,

Что значит << делать? Кажется, что он не отправляет данные в wc stdin, но почему?

1 ответ

Решение

В csh, как и в оболочках семейства POSIX, << запускает heredoc, то есть многострочную строку, оканчивающуюся строкой, содержащей сразу после него только слово. Таким образом, в следующем примере:

cat << input | wc > output
this is test data here
input

this is test data here подается как стандартный catстандартный вывод которого подается как стандартный wc, (Кстати, нет никакого смысла использовать cat Вот; ты мог бы просто wc <<input >output с тем же эффектом и со значительно меньшей неэффективностью).

Другие вопросы по тегам