我得到这个奇怪的错误消息试图写一个python脚本shebang:
$ echo "#!/usr/bin/env python" > scripts/sandbox.py -bash: !/usr/bin/env: event not found $ echo "say what?" > scripts/sandbox.py
立即,做同样的事情,但不使用shebang线工程。 这种行为是什么?如何克服? 谢谢
!
是一个特殊的字符,它被用来指以前的命令。 它在双引号内扩展。 为了避免这种情况,请用单引号括起来:
echo '#!/usr/bin/env python' > scripts/sandbox.py
@ mklement0在评论中精美地澄清了它:
更具体地说,
!
对于Bash的历史扩展功能来说是特殊的,默认情况下(仅)在交互式shell中。 除了用单引号字符串来避开它外,还可以用set +H
来关闭它