我收到了这个奇怪的错误消息,试图将shebang写入python脚本:
$ echo "#!/usr/bin/env python" > scripts/sandbox.py
-bash: !/usr/bin/env: event not found
$ echo "say what?" > scripts/sandbox.py
立即做同样的事情,但没有使用shebang line作品。这种行为是什么以及如何克服?谢谢
答案 0 :(得分:9)
!
是bash的特殊字符,用于引用以前的命令。它在双引号内扩展。
为避免这种情况,请将它们用单引号括起来:
echo '#!/usr/bin/env python' > scripts/sandbox.py
@mklement0在评论中明确地澄清了它:
更具体地说,
!
对于Bash的历史记录扩展功能是特殊的,该功能在交互式shell中默认启用(仅限)。除了通过使用单引号字符串来避免它,它可以与set +H
完全关闭