wget으로“구성표 누락”오류가 발생 함


14

Desktoppr API 에서 임의의 배경 화면을 가져 와서 바탕 화면 배경 화면을 변경 하는 작은 스크립트를 작성 했습니다.

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

... 명령이 올바르게 실행되고 이미지를 다운로드합니다. 이는 변수의 일부 문제로 인해 오류가 발생했음을 의미합니다.

jqDesktoprr API의 JSON 응답을 구문 분석하는 데 사용 하는 라이브러리 와 관련이 있다고 생각합니다 .

답변:


22

예를 들어 다음과 같은 -r옵션을 사용하여 URL을 둘러싼 큰 따옴표를 제거해야 합니다 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\""

브라보. 이 문제로 인해 키보드가 두들겨졌습니다. 감사!
Hussain Khalil
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.