Отримання помилки "Схема відсутня" з wget


14

Я написав невеликий сценарій, який захоплює випадкові шпалери з 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.

Відповіді:


22

Потрібно видалити подвійні лапки навколо 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\""

Браво. Ця проблема змусила мене ляскати клавіатурою. Спасибі!
Хуссей Халіл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.