Я написал небольшой скрипт, который берет случайные обои из 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.
Необходимо удалить двойные кавычки, окружающие 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\""