Comme pratique du script shell, j'ai créé un script pour vérifier "La météo d'aujourd'hui" en utilisant l'API de prévisions météorologiques de Livedoor Weather Hacks.
Aussi, j'ai essayé de spécifier le nom du lieu afin que les prévisions météorologiques puissent être vues au point souhaité.
sed
pour supprimer les parties inutiles.jq
.weather.sh
suivant, spécifiez le nom de lieu souhaité comme argument.weather.sh
#!/bin/bash
# http://weather.livedoor.com/forecast/webservice/json/v1?
#Extrayez les noms de points et les ID qui correspondent aux noms de lieux saisis à partir de la table de définition de point (RSS) à l'échelle nationale.
# http://weather.livedoor.com/forecast/rss/primary_area.xml
cityname_id=$(curl -s http://weather.livedoor.com/forecast/rss/primary_area.xml \
| sed "s/>/>\n/g" \
| grep city \
| sed "s/<city title=\"//g" \
| sed "s/\" source.*>//g" \
| sed "s/\" id=\"/,/g" \
| grep $1) \
#Si le nom de lieu correspondant existe, obtenez les prévisions météorologiques pour cette ville.
#Si la ville correspondante n'existe pas, le processus se termine.
if [ -z "$cityname_id" ]; then
echo 「$Les prévisions météorologiques de 1 "ne sont pas fournies. Veuillez choisir parmi les villes suivantes.
echo ----------------------------------------
echo $(curl -s http://weather.livedoor.com/forecast/rss/primary_area.xml \
| sed "s/>/>\n/g" \
| grep city \
| sed "s/<city title=\"//g" \
| sed "s/\" id.*>//g")
else
# {Nom du point,ID}Extrayez uniquement l'ID de la chaîne de caractères de.
city_id=$(echo $cityname_id | sed "s/.*,//g")
city_name=$(echo $cityname_id | sed "s/,.*//g")
echo $city_nommez la météo du jour:\
$(curl -s http://weather.livedoor.com/forecast/webservice/json/v1?city=${city_id} \
| jq '.forecasts[]' \
| jq -r 'select(.dateLabel=="aujourd'hui").telop')
fi
Résultat de l'exécution (lorsque les prévisions météorologiques du nom de lieu spécifié existent)
[root@akagi ~]# ./weather.sh Tokyo
Météo du jour à Tokyo: ensoleillé
Résultat d'exécution (lorsque la prévision météo du nom de lieu spécifié n'existe pas)
[root@akagi ~]# ./weather.sh Penguin Village
Aucune prévision météo pour "Penguin Village" n'est fournie. Veuillez choisir parmi les villes suivantes.
----------------------------------------
Wakauchi Asahikawa Rume Amisato Kitami Monbetsu Nemuro Kushiro Obihiro Muroran Urakawa Sapporo Iwamizawa Kuchiyasu Hakodate Esashi Aomori Mutsu Hachinohe Morioka Miyako University
Funawatari Sendai Shiraishi Akita Yokote Yamagata Yonezawa Sakata Shinjo Fukushima Onahama Wakamatsu Mito Tsuchiura Utsunomiya Otahara Maebashi Minakami Saitama Kuma
Tani Chichibu Chiba Chiba Tateyama Tokyo Oshima Hachijojima Father Island Yokohama Odawara Niigata Nagaoka Takada Aikawa Toyama Fushiki Kanazawa Wajima Fukui Tsuruga Kofu Kawaguchiko Nagano Matsumoto Iida Gifu Takayama Shizuoka Amiyo Mishi Mishoya Nagoya Mishatsu Hamada Saigo Okayama Tsuyama Hiroshima Shohara Shimozeki Yamaguchi Yanai Hagi Tokushima Hiwasa Takamatsu Matsuyama Araihama U
Wajima Kochi Cape Muroto Shimizu Fukuoka Yawata Iizuka Kurume Saga Imari Nagasaki Sasebo Sagebo Fukue Kumamoto Aso Otohime Ushifuka Hitoyoshi Oita Nakatsu Hida Saeki Miyazaki Nobuoka Miyazaki Takachiho Kagoshima Kagoshima Kagoshago
Recommended Posts