管道符后出现“命令未找到”的错误

43

我正在使用带有zsh的OS X Mavericks(技术上属于oh-my-zsh软件包)。

最近一段时间,我一直遇到这个问题,并且没有找到解决方法。有时当我使用管道符来执行命令时,会出现“command not found”的错误。

例如,当我像这样进行Nmap网络列表扫描:nmap -sL 192.168.2.0/24 | grep ')' 时,有时会出现 zsh:command not found: grep 的错误。即使我按箭头上键也无效,所以我必须重新输入完全相同的命令,才能让它正常工作。

这真的很烦人,而且其他命令偶尔也会出现这种情况,大多数情况下都是在使用管道后发生。

你知道这是为什么吗?


2个回答

173

事情只有偶尔发生,这表明您的输入实际上会时不时地有所变化(微妙的变化)。

这取决于您使用的键盘类型,但我认为您在输入管道符后的空格时意外按住了Alt键。Alt + Space是一个不间断的空格,而zsh无法识别。


24
圣*,你是对的。非常感谢。太容易被发现了 >.< - Obi-Wan
5
初级的,华生。 - Esteban
2
太好了,谢谢你。我的终端不会显示那个打断它的“丑陋空格”。 - fisehara
4
我来这里是为了弄清楚这件事,感谢你的帮助。 - JHH
就此而言,在Debian Bash上,使用(法语)PC键盘时,[Alt gr] +空格也会发生这种情况...由于在该键盘上生成管道需要使用[Alt gr],因此这种情况经常发生在我身上。 - aka.nice

24

当你在Mac OS X中复制并粘贴命令行时,这是常见的错误。

你可以做的是删除 | 前后的空格。

例如,kubectl get pods | grep bla-bla-bla 现在变成了 kubectl get pods|grep bla-bla-bla

希望能对你有所帮助。


非常奇怪的行为 - maoizm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接