Получение ошибки «Схема отсутствует» с помощью wget

Я написал небольшой скрипт, который берет случайные обои из API-интерфейса Desktoppr и заменяет обои рабочего стола на него:

#!/bin/bash
url=$(curl 'https://api.desktoppr.co/1/wallpapers?page='$(shuf -i 1-1000 -n 1) | jq ".response[].image.url" | sed $(shuf -i 1-20 -n 1)'!d') &&
wget "$url"

Когда я запускаю скрипт, финал wget ] команда завершается с ошибкой:

"http://a.desktopprassets.com/wallpapers/...jpg": Scheme missing.

Когда я помещаю URL-адрес непосредственно в команду wget, примерно так:

wget "http://a.desktopprassets.com/wallpapers/...jpg"

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

Думаю, это может быть связано с библиотекой jq , которую я использую для анализа ответа JSON от API Desktoprr.

14
задан 16 April 2016 в 20:06

1 ответ

Необходимо удалить двойные кавычки, окружающие URL, например, при помощи -r опция к jq:

url=$(curl 'https://api.desktoppr.co/1/wallpapers?page='$(shuf -i 1-1000 -n 1) | jq -r ".response[].image.url" | sed $(shuf -i 1-20 -n 1)'!d')

В настоящее время команда на самом деле приводит к

wget "\"http://a.desktopprassets.com/wallpapers/...jpg\""
20
ответ дан 17 April 2016 в 06:06
  • 1
    Вы могли сделать сценарий взглядами, чтобы видеть, снижается ли Ваша VPN некоторым очевидным способом (программа для выполнения, это больше не работает), или мог бы снизиться (веб-сайт компании не может быть достигнут некоторое решительное количество времени), и сбросьте маршрут в этом случае. или можно сделать сценарий, которые явно удаляют VPN, если Вы делаете это командой, сброс маршрут, что выполняется тот сценарий. – Skaperen 27 August 2017 в 20:02

Другие вопросы по тегам:

Похожие вопросы: