Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OSX提示命令中的Bash管道有时找不到_Bash_Osx Lion_Pipe_Piping - Fatal编程技术网

OSX提示命令中的Bash管道有时找不到

OSX提示命令中的Bash管道有时找不到,bash,osx-lion,pipe,piping,Bash,Osx Lion,Pipe,Piping,在OSX终端中: du -h | sort -nr -bash:  sort: command not found which sort /usr/bin/sort 奇怪的是:我试图复制错误,但它似乎完全是随机的。我的道路回荡着: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/texbin:/Users/sytycs/.rvm/bin 这仅在管道中发生,并与grep、mor

在OSX终端中:

du -h | sort -nr
-bash:  sort: command not found

which sort
/usr/bin/sort
奇怪的是:我试图复制错误,但它似乎完全是随机的。我的道路回荡着:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/texbin:/Users/sytycs/.rvm/bin
这仅在管道中发生,并与
grep
more
less
等一起发生。
你知道是什么原因吗?

空间不是空间。擦除并替换它。

这种情况很可能发生,因为您使用的键盘布局是非美国布局(我也遇到过这种情况)。在德语布局中,管道是用Alt+7键入的,因此很有可能在之后按Alt+Space,这将产生一个新的字符

快速解决方案:添加行

"\xC2\xA0": " "
到您的
~/.inputrc
(如果您使用的是bash)。这将把非中断空间映射到正常空间,这将解决问题


如果您想了解更多细节(或者如果您对如何追踪此类问题感兴趣),我早就写过了。

使用~/.inputrc的技巧不适用于zsh。但在这里,您可以配置iTerm,使其在键入alt+space时发送空格,例如,当您使用管道时,Bash对空格非常敏感将它们全部删除。 运行此命令时,我遇到了相同的问题:

|awk '{$1=$1};1' |  tr '[:upper:]' '[:lower:]' |  sort | uniq 
| awk '{ print length, $0 }' | sort -n -s | cut -d" " -f2- > dest_file
错误如下:

zsh: command not found:   tr
zsh: command not found:   sort
然后我删除了所有的间隔,它得到了解决:

|awk '{$1=$1};1'|tr '[:upper:]' '[:lower:]'|sort|uniq|awk '{ print length, $0 
}'|sort -n -s|cut -d" " -f2- >

嗨,谢谢你的回复。我不确定你所说的“擦除并替换它”是什么意思,但我删除了“|”和“排序”之间的空格,它似乎起了作用。不过,你能解释一下原因吗?因为它不是空格,它看起来只是一个。你可能没有始终如一地键入它(例如,选项空格看起来像空格,但不是),或剪切/粘贴或使用早期键入错误版本的历史记录。我一直都在这样做。Mac键盘(至少在世界某些地区)使用Alt+7创建管道符号,然后很快就会意外按下Alt+Space,从而导致键入错误的字符(不是空格,而是硬空格或其他任何名称)。如果您将
“\xC2\xA0”:“
添加到
~/。inputrc
bash将不间断空格视为正常空格。我更详细地了解了。谢谢@Michael,我仍然经常遇到这个问题。非常棒的答案+1请查看超级用户中的另一篇帖子