ZSH, конкатенация передается аргументами в одну строку

Я хотел бы создать простую функцию bash для использования для моего удобства. После ответа, приведенного в: Объединяя аргументы bash в одну строку с пробелами, я смог размять этот маленький кусок кода:

function gcm { msg="'$*'" eval "git commit -m ${msg}" } 

Теперь этот пример очень удобен для сообщений о совершении, таких как «Привет, это я» (простой набор символов слова), но когда я не буду писать сообщение, например: «[WIP] Halfway crough code.», Я получаю сообщение об ошибке следующим образом: zsh: no matches found: [WIP]

Не могли бы вы пояснить для меня, что происходит на заднем плане и почему этот фрагмент не удается?

One Solution collect form web for “ZSH, конкатенация передается аргументами в одну строку”

ZSH восхитительно свободен от поведения расщепления слов, наблюдаемого в других оболочках (если только по какой-то причудливой причине не SH_WORD_SPLIT параметр SH_WORD_SPLIT ), поэтому нет необходимости использовать странные конструкции с двойным кавычками.

 % (){ print -l $* } abca b c % (){ print -l "$*" } abc abc % (){ local msg; msg="$*"; print -l $msg } abc abc % 

Таким образом, должно быть достаточно:

 function gcm { local msg msg="$*" git commit -m $msg } 

Глобус может быть отключен путем цитирования строк, таких как [WIP] как '[WIP]' , или, возможно, с помощью псевдонима noglob :

 % function blah { print -l "$*" } % alias blah='noglob blah' % blah [de] *blah* [de] *blah* % 
  • Функция автозавершения Bash для SSHing в разные хосты
  • Существует ли более короткий эквивалент long / path / ** / ^ *. (Complex | pattern) ~ long / path / (bad-1 | bad-2) / * (.), Который не требует повторения long / path / ?
  • Тестирование диска на стоянке
  • Сочетание вклада вкладки zsh с нечувствительностью к регистру
  • Команда Wrap в подсказке
  • Перемещение дескрипторов файлов в zsh
  • Использовать Netrw или Nerdtree в Zsh / Bash для выбора файла BY BROWSING?
  • zshell - это вкладка, дополняющая двусмысленные варианты
  • печать и не выполнение результата расширения истории zsh при частичном поиске
  • Элегантный способ предотвратить замену команд от удаления конечной строки новой строки
  • Могу ли я изменить способ отображения файла?
  • Linux и Unix - лучшая ОС в мире.