我在尝试将 shebang 写入 python 脚本时收到此奇怪的错误消息:
$ echo "#!/usr/bin/env python" > scripts/sandbox.py
-bash: !/usr/bin/env: event not found
$ echo "say what?" > scripts/sandbox.py
立即做同样的事情,但不使用 shebang 线作品。这种行为是什么?如何克服?
!
是 bash 的特殊字符,用于引用之前的命令。它在双引号内展开。
为了避免这种情况,请将它们用单引号引起来:
echo '#!/usr/bin/env python' > scripts/sandbox.py
@mklement0 https://stackoverflow.com/users/45375/mklement0在评论中精美地澄清了这一点:
进一步来说,!
对于 Bash 的历史扩展功能来说是特殊的,默认情况下(仅)在交互式 shell 中启用该功能。除了通过使用单引号字符串来避免它之外,还可以使用以下命令将其完全关闭set +H
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)