Они работают отлично и делать то, что они должны (напечатать содержимое файла обув):Баш/ЗШ замена входной процесс дает синтаксическую ошибку в сочетании с пока
cat <foo
while read line; do echo $line; done <foo
cat <(cat foo)
Однако это дает мне ошибку синтаксиса в Zsh :
zsh$ while read line; do echo $line; done <(cat foo)
zsh: parse error near `<(cat foo)'
и Баш:
bash$ while read line; do echo $line; done <(cat foo)
bash: syntax error near unexpected token `<(cat foo)'
кто-нибудь знает причину и, возможно, обходной путь?
Примечание: Это, очевидно, пример игрушки. В реальном коде мне нужно тело время цикла будет выполняться в основном процессе оболочки, поэтому я не могу просто использовать
cat foo | while read line; do echo $line; done
Да, точно. Я понял это за минуту до твоего поста и ответил сам себе :) Но вместо этого я удалю свой ответ и приму твое. Благодаря! –
Отлично! Поэтому 'cat <<(cat foo)' также работает! – olibre