Необходимо передавать URL-адреса в кавычках

Я пытаюсь передать URL-адрес в mpv чтобы он воспроизводил его как сетевой поток.

Это можно сделать в bash со следующим синтаксисом:

 $ mpv http://myvideosite.com 

Однако zsh хочет оценить URL как (предположительно) путь к файлу. Бег

 % mpv http://myvideosite.com 

получает следующий ответ:

 zsh: no matches found: http://myvideosite.com 

и код возврата 1.

Бег

 % mpv "http://myvideosite.com" 

выполняется, как ожидалось.

zsh не обрабатывает аргументы как строки?

One Solution collect form web for “Необходимо передавать URL-адреса в кавычках”

Я предполагаю, что вы случайно урезали важную часть ваших командных строк здесь: в рассматриваемых URL-адресах есть ? символ (или * ). ? и * – специальные символы соответствия glob оболочке. ? соответствует одному символу в имени файла и * соответствует многим. Когда zsh говорит:

 zsh: no matches found: http://myvideosite.com?video=123 

это говорит вам, что нет файла под названием http://myvideosite.com?video=123 доступного из текущего каталога.

В zsh по умолчанию неудавшееся расширение, подобное этому, является ошибкой, но в Bash это не так: неудачный шаблон просто оставлен как аргумент точно так, как он был написан. Поведение zsh безопаснее, поскольку вы не можете написать команду, которая тайно не делает то, что вы имели в виду, потому что файл отсутствовал, но вы можете изменить его, чтобы иметь поведение Bash, если хотите:

 setopt nonomatch 

Опция NOMATCH по умолчанию и вызывает ошибки, которые вы видели. Если вы отключите его с помощью setopt nonomatch то любые неудачные расширения glob останутся нетронутыми в командной строке:

 $ echo foo?bar zsh: no matches found: foo?bar $ setopt nonomatch $ echo foo?bar foo?bar 

Это решит ваш первоначальный вариант использования. В общем, лучше будет приводить аргументы со специальными символами, чтобы избежать ошибок, когда файл существует с соответствующим именем или не существует, когда вы думали, что это так.

  • сценарий к cd во многие каталоги и выполнить команду
  • Не удалось обновить / обновить пакет Oh-My-Zsh с помощью команды `sudo pacman -S Oh-My-Zsh`
  • Как удалить все, кроме числовых каталогов верхнего уровня?
  • Портативный способ получить абсолютный путь скрипта?
  • Установка backspace = 2 в zsh с привязками vi
  • Сделать zkbd игнорировать $ DISPLAY
  • Файлы в $ ZSH_CUSTOM, не загруженные oh-my-zsh
  • Каков эффект «$ {(@ f) ...}» в Zsh?
  • ограничение исторических_верифов в зш
  • Путь независимых shebangs
  • zsh копировать и вставлять как emacs
  • Linux и Unix - лучшая ОС в мире.