LINUX.ORG.RU

zsh не умеет тогоже что и bash, как исправить?

 ,


0

1
% find ${PATH//:/ } -name '*swarm'                                         
find: «/usr/local/bin /usr/bin /bin /usr/games /home/rad/bin»: Нет такого файла или каталога
% bash                             
$ find ${PATH//:/ } -name '*swarm'
/usr/bin/docker-swarm

судя по всему zsh раскрывает ${PATH//:/ } в виде единого аргумента, и find ищет такую директорию, это печально, как исправить?

Deleted

В порядке убывания идиоматичности.

  • $path
  • ${(s.:.)PATH}
  • ${=PATH//:/ }
anonymous ()

Да неужели? zsh не расковыривает на слова переменные, которые передаёшь как аргументы? Только если специально указать, что ты именно этого хочешь?

ДА НЕУЖЕЛИ! Немедленно ставлю! НЕМЕДЛЕННО!

Я столько лет плевался от этой фичи в bash, что приучился обрамлять в кавычки всё, что нужно и не нужно.

nexfwall ★★★★ ()
Ответ на: комментарий от nexfwall

Только если специально указать, что ты именно этого хочешь?

Еще можно setopt shwordsplit и будет как в bash.

salsa ()
Последнее исправление: salsa (всего исправлений: 1)
Ответ на: комментарий от nexfwall

Да неужели? zsh не расковыривает на слова переменные, которые передаёшь как аргументы? Только если специально указать, что ты именно этого хочешь?

Офонареть, в линуксе есть нормальный шелл, а я столько лет не в курсе!

ДА НЕУЖЕЛИ! Немедленно ставлю! НЕМЕДЛЕННО!

+1

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.