这有效:
$ 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:解析“ done”附近的错误
注意:破折号有效。
像这样的问题经常被人们误解,因为很少有人意识到aliases
在非交互式shell中已被禁用。
在您的情况下,这是一个do
导致问题的别名。
要研究类似的问题,通常可以使用以下方法启动一个新的shell:
HOME=/tmp $shell
然后再试一次。这样可以避免交互式外壳读取启动脚本。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句