これは働きます:
$ bash -c 'while true; do echo foo; sleep 1; done'
foo
foo
...
しかし、これではありません:
$ while true; do echo foo; sleep 1; done
bash: syntax error near unexpected token `done'
zshでも同じ問題が発生します。
zsh:「完了」付近で解析エラーが発生しました。
注:ダッシュは有効です。
ベストアンサー1
このような問題は、aliases
非対話型シェルでは無効になっていることを知っている人がほとんどいないため、しばしば誤解されます。
do
あなたの場合、問題を引き起こすのはnameという別名です。
同様の問題を調査するには、通常、次のコマンドを使用して新しいシェルを起動できます。
HOME=/tmp $shell
それからもう一度やり直してください。これにより、対話型シェルは起動スクリプトを読み取ることができません。