Bashを使用すると、コマンドの前にリダイレクトされた入力を指定できます。
$ <lines sed 's/^/line: /g'
line: foo
line: bar
while
Bashを使用すると、ループなどの複合コマンドで入力をリダイレクトすることもできます。
$ while read line; do echo "line: $line"; done <lines
line: foo
line: bar
ただし、ループの前にリダイレクト入力を指定しようとすると、while
構文エラーが発生します。
$ <lines while read line; do echo "line: $line"; done
bash: syntax error near unexpected token `do'
これは何の問題ですか? Bashで複合コマンドの前にリダイレクトされた入力を指定できませんか?それではなぜならないのですか?