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