Errore "Scheme missing" con wget

10

Ho scritto una piccola sceneggiatura che cattura uno sfondo casuale dall'API Desktoppr e cambia lo sfondo del mio desktop su di esso:

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

Quando eseguo lo script, il comando finale wget fallisce con l'errore:

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

Quando inserisco l'URL direttamente nel comando wget, in questo modo:

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

... il comando viene eseguito correttamente e scarica l'immagine, il che significa che l'errore si verifica a causa di qualche problema nella variabile.

Penso che questo potrebbe avere qualcosa a che fare con la jq libreria che sto usando per analizzare la risposta JSON da l'API Desktoprr.

    
posta Hussain Khalil 16.04.2016 - 18:58

1 risposta

11

Devi rimuovere le virgolette che circondano l'URL, ad esempio utilizzando l'opzione -r in 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')

Attualmente il comando risulta in

wget "\"http://a.desktopprassets.com/wallpapers/...jpg\""
    
risposta data Florian Diesch 16.04.2016 - 19:08

Leggi altre domande sui tag