ZSH функция не работает с ошибкой «Отсутствует конец строки» - PullRequest
0 голосов
/ 06 мая 2020

Я учусь писать zsh функций и сразу же озадачен ошибкой строки, которую я не понимаю. У меня есть эта функция:

function copyToDrafts() {
  print($1)
}

в моем редакторе командной строки (Терминал). Я набираю:

copyToDrafts "test"

и получаю эту ошибку:

copyToDrafts:1: missing end of string

Я не мог Я не нашел объяснений в сообщении об ошибке и не вижу ничего плохого в том, что я передаю, хотя, очевидно, что-то не так. Любая помощь будет оценена.

1 Ответ

2 голосов
/ 06 мая 2020

Скобки не являются частью синтаксиса; они интерпретируются как введение квалификатора glob в шаблон print. После раскрытия параметра должен быть оценен шаблон

print(test)

со следующими квалификаторами glob:

  1. t - сопоставить файлы с именами print, для которых установлены липкие биты
  2. e выполнить команду оболочки. s действует как разделитель, но нет «закрытия» s, которое приводит к наблюдаемой ошибке.

Вам просто нужно отбросить круглые скобки.

copyToDrafts () {
  print $1
}
...