![为什么 Bash 在终端中在某些情况下报告“未找到命令”,但在其他情况下却不报告?](https://linux22.com/image/1476735/%E4%B8%BA%E4%BB%80%E4%B9%88%20Bash%20%E5%9C%A8%E7%BB%88%E7%AB%AF%E4%B8%AD%E5%9C%A8%E6%9F%90%E4%BA%9B%E6%83%85%E5%86%B5%E4%B8%8B%E6%8A%A5%E5%91%8A%E2%80%9C%E6%9C%AA%E6%89%BE%E5%88%B0%E5%91%BD%E4%BB%A4%E2%80%9D%EF%BC%8C%E4%BD%86%E5%9C%A8%E5%85%B6%E4%BB%96%E6%83%85%E5%86%B5%E4%B8%8B%E5%8D%B4%E4%B8%8D%E6%8A%A5%E5%91%8A%EF%BC%9F.png)
通常(但并非总是),当我在计算机上启动终端并|
在命令中使用管道符 ( ) 时,pbpaste | wc
例如,bash 会给出-bash: wc: command not found
。 (双倍空格不是拼写错误)。
过了一会儿,我找到了一个解决方案:我删除了竖线 ( pbpaste |wc
) 后面的空格,一切正常。但是当我运行带有空格的竖线时,一切正常,并且 bash 发现该命令完全有效,即使几分钟前我输入了完全相同的命令时,它根本不喜欢该命令。
以下是该事件的截图:
我有两个非常相似的问题:
- 为什么 bash 会以不同的方式处理这两行,即使它们是相同的?我不知道为什么会发生这种情况。
- 我该如何修复这个问题?
答案1
错误信息中对问题进行了提示;有一个额外的空格显示:
bash: wc: …
而不是:
bash: wc: …
从你的问题来看,我猜你使用的是 Mac。我猜你使用的键盘布局|
要求使用 键才能输入字符。我认为可能发生的情况是,你在输入空格时Alt/Option让手指停留在键上。Alt
Alt+Space类型 a不间断空格而不是常规的空格字符,Bash 的解析器不认为它是任何类型的空格,因此将其作为命令名的一部分。
由于您打字更仔细,所以第二次才有效!