Я отвечу ужасным, нарисованным рукой комиком. Второе изображение является причиной того, что result
является undefined
в вашем примере кода.
Это пространство не пространство. Стереть и заменить его.
Трюк с ~ / .inputrc не работает для zsh. Но здесь вы можете настроить iTerm для отправки пространства при вводе alt + space, например
Вероятно, это происходит из-за того, что вы используете раскладку клавиатуры с неамериканским расположением (тоже со мной). На немецких макетах труба набирается с помощью Alt + 7, поэтому есть вероятность, что вы нажмете Alt + Space, что приведет к отсутствию разрывов .
Быстрая Решение: добавьте строку
"\xC2\xA0": " "
к вашему ~/.inputrc
. Это будет отображать неразрывные пробелы в нормальные, которые должны решить проблему.
Если вам нужна более подробная информация (или если вас интересует, как вы можете отслеживать эти проблемы, я написал сообщение в блоге об этом некоторое время назад).
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- >