使用Python -c参数执行代码触发Bash事件未找到错误求助
Python -c执行含
!代码触发Bash错误的原因 这问题根源是Bash的历史扩展机制:
- Bash里
!是特殊符号,用来调用历史命令(比如!!就是重复上一条命令)。 - 你用双引号
""包裹Python代码时,Bash会先解析引号内的特殊字符,"print('!')"里的!会被Bash当成历史扩展的触发标记,而非要传给Python的字符串内容,因此抛出event not found错误。 - 而
"print('foo')"里没有特殊字符,Bash直接把整段内容传给Python,所以能正常执行。
解决办法二选一:
- 用单引号包裹Python代码:
python -c 'print("!")',Bash不会解析单引号内的任何特殊字符,!会完整传递给Python。 - 给
!加反斜杠转义:python -c "print('\!')",明确告诉Bash这个!是普通字符,无需触发历史扩展。
内容的提问来源于stack exchange,提问作者Jeyekomon
相关产品推荐
相关产品推荐

