Próbuję utworzyć skrypt powłoki, który pobierze adres URL obrazu dla losowego komiksu XKCD, tak, że mogę go wyświetlić za pomocą Übersicht. Ponieważ można tylko zapytać API xkcd za ostatni komiks lub specyficzny komiks muszę:Parsowanie odpowiedzi json curl i użycie odpowiedzi w celu utworzenia kolejnego żądania
- Wyślij wniosek
GET
dohttp://xkcd.com/info.0.json
, pobrać wartość elementunum
. - Wyślij kolejne żądanie do
http://xkcd.com/XXX/info.0.json
gdzieXXX
to wartośćnum
.
Moja obecna komenda wygląda tak skutecznie i zwraca liczbę komiks:
curl -s 'http://xkcd.com/1510/info.0.json' | grep -Eo '"num": \d+' | grep -Eo '\d+'
- I nie były w stanie dowiedzieć się, jak używać grup przechwytywania z
grep
, więc muszę grep json dwa razy. Powszechnie zaleca się używanie-P
, która nie jest obsługiwana w systemie Mac OS X 10.10. - Nie mam pojęcia, jak odczytać wynik polecenia grep (jako
XXX
) do drugiej komendycurl -s 'http://xkcd.com/XXX/info.0.json'
.
To działa świetnie w Terminalu, więc akceptuję to. Dzięki, świetna robota. Teraz wystarczy, że zadziała w Übersicht - otrzymuję błąd "ósemkowej sekwencji ucieczki". –
@SamuelLindblom Nie widzę żadnej ósemkowej sekwencji poleceń w moich komendach. I nie używam Übersicht - czy możesz wyjaśnić, który krok idzie źle w szczegółach? (Jeśli nie masz pewności, możesz rozbić potok i przetestować osobno). – 4ae1e1