bash中无法识别的命令由python解释器捕获[closed]

每次我尝试在控制台(/ bin / bash)中调用不存在的命令(例如$a)时,解释器等待很长时间.当我中断它(^ C),我从 Python解释器得到一个错误消息.而不是这样,我希望它告诉我,这个命令是无法识别的.为什么会发生这种情况?
$a
^C
Traceback (most recent call last):
  File "/usr/lib/python2.7/encodings/__init__.py",line 32,in <module>
root@dell:/home/antonio/workspace/biz_index#     from encodings import aliases
  File "/usr/lib/python2.7/encodings/aliases.py",line 17,in <module>
    """
KeyboardInterrupt
^C
如果设置PATH =“”修复它,那么某些东西就是遮蔽一个被命令未找到的包调用的python包.我最近通过编写一个名为struct.py的脚本自己做了这个.您需要浏览路径中的每个目录,即
/home/antonio/.local/bin
/home/antonio/.local/bin
/usr/local/sbin
/usr/local/bin‌​
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games

并在那里查找.py文件.其中一个一个内置的Python包共享一个名称.或者,您可以从PATH中删除目录,然后将其重新插入,直到找到哪个中断它.找到它后,您需要将其删除重命名.

这是一个shell一线,为你做:

for dir in $(echo $PATH | tr ":" "\n"); do ls -1 $dir | grep "[.]py"; done

您可以通过尝试以下操作(从几天前重新创建我的错误)在自己的shell中测试这个:

echo 'print("HELLO WORLD")' >> struct.py

现在在我的shell中,留在当前目录下,我看到:

➜  client git:(master) ✗ a
HELLO WORLD
zsh: command not found: a

大概在你的案例中正在做阴影的Python脚本正在做一些比打印“HELLO WORLD”更多的资源,因此挂起来.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...