Getting "Scheme missing" error with wget
83,734
You need to remove the double quotes surrounding the URL, for example by using the -r
option to 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')
Currently the command actually results in
wget "\"http://a.desktopprassets.com/wallpapers/...jpg\""
Related videos on Youtube
Author by
Hussain Khalil
Updated on September 18, 2022Comments
-
Hussain Khalil over 1 year
I wrote a little script that grabs a random wallpaper from the Desktoppr API and changes my desktop wallpaper to it:
#!/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"
When I run the script, the final
wget
command fails with the error:"http://a.desktopprassets.com/wallpapers/...jpg": Scheme missing.
When I put the URL directly into the wget command, like so:
wget "http://a.desktopprassets.com/wallpapers/...jpg"
... the command executes correctly and downloads the image, meaning that the error occurs because of some problem in the variable.
I think this might have something to do with the
jq
library that I am using to parse the JSON response from the Desktoprr API. -
Hussain Khalil about 8 yearsBravo. This problem had me slamming the keyboard. Thanks!