Wget ile "Şema eksik" hatası alıyorum


14

Desktoppr API'sından rastgele bir duvar kağıdı alan ve masaüstü duvar kağıdımı buna değiştiren küçük bir komut dosyası yazdım :

#!/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"

Komut dosyasını çalıştırdığımda, son wgetkomut hatayla başarısız olur:

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

URL'yi doğrudan wget komutuna koyduğumda, şöyle:

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

... komut doğru bir şekilde yürütülür ve görüntüyü indirir, bu da değişkente bir sorun nedeniyle hatanın oluştuğu anlamına gelir.

Bunun jqDesktoprr API'sından JSON yanıtını ayrıştırmak için kullandığım kitaplıkla ilgili bir şey olabileceğini düşünüyorum .

Yanıtlar:


22

Sen kullanarak örneğin URL'yi çevreleyen çift tırnak, kaldırmak gerekir -rseçeneği 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')

Şu anda komut aslında

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

Bravo. Bu sorun bana klavyeyi çarptırdı. Teşekkürler!
Hussain Khalil
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.