-bash:!/ usr / bin / env:找不到事件

时间:2017-03-14 23:57:26

标签: python linux bash macos echo

我收到了这个奇怪的错误消息,试图将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作品。这种行为是什么以及如何克服?谢谢

1 个答案:

答案 0 :(得分:9)

!是bash的特殊字符,用于引用以前的命令。它在双引号内扩展。 为避免这种情况,请将它们用单引号括起来:

echo '#!/usr/bin/env python' > scripts/sandbox.py 

@mklement0在评论中明确地澄清了它:

  

更具体地说,!对于Bash的历史记录扩展功能是特殊的,该功能在交互式shell中默认启用(仅限)。除了通过使用单引号字符串来避免它,它可以与set +H完全关闭