Команда Bash piping в подсказках OSX не найдена, иногда - PullRequest
13 голосов
/ 01 января 2012

В терминале 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 и т. Д. Есть идеи, что вызывает это?

Ответы [ 4 ]

35 голосов
/ 17 августа 2014

Это, вероятно, происходит потому, что вы используете раскладку клавиатуры с неамериканской раскладкой (случалось и со мной).На немецких раскладках труба набирается с помощью Alt + 7 , поэтому высоки шансы, что вы нажмете Alt + Пробел , чтосоздаст неразрывный пробел .

Быстрое решение: добавьте строку

"\xC2\xA0": " "

к вашему ~/.inputrc.Это преобразует неразрывные пробелы в нормальные, что должно решить проблему.

Если вы хотите получить более подробную информацию (или если вы заинтересованы в том, как вы можете отследить подобные проблемы, я написал aсообщение в блоге об этом некоторое время назад).

29 голосов
/ 01 января 2012

Это пространство не пространство.Сотрите и замените его.

0 голосов
/ 19 июля 2018

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- >
0 голосов
/ 25 января 2017

Трюк с ~ / .inputrc не работает для zsh.Но здесь вы можете настроить iTerm для отправки пробела при вводе alt + space, например

...