이것은 작동합니다:
$ 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
그런 다음 다시 시도해 보세요. 이렇게 하면 대화형 셸이 시작 스크립트를 읽을 수 없습니다.