Je veux trouver l'actuel météo d'une ville particulière ou de mon emplacement depuis le terminal. Existe-t-il une application météo en ligne de commande ?
Réponses
Trop de publicités?Tout d'abord, vous devez installer le paquet weather-util, pour ce faire, appuyez simplement sur Ctrl + Alt + T sur votre clavier pour ouvrir le Terminal. Lorsqu'il s'ouvre, exécutez la ou les commandes ci-dessous :
sudo apt-get install weather-util
Vous aurez besoin de votre code météo local .
Après l'installation, vous pouvez exécuter weather -i <code>
. Le code que vous obtenez à partir du lien ci-dessus. Pour obtenir une liste des options disponibles, vous pouvez exécuter weather
Infos météo
Il existe également un programme préinstallé avec Ubuntu, appelé Inxi, qui vous donne tous les types de statistiques sur votre ordinateur et qui fait une sortie météo.
commande : inxi --help
commande : inxi -w
Conditions: 82 F (28 C) - Clear Time: May 13, 10:52 AM CDT
commande : inxi -wxxx
Conditions: 82 F (28 C) - Clear Wind: From the SW at 13 MPH Humidity: 60%
Pressure: 29.99 in (1016 mb) Heat Index: 84 F (29 C)
Location: city (USA) Altitude: 185 m
Time: May 13, 10:52 AM CDT (America/Chicago) Observation Time: May 13, 9:54 AM CDT
J'ai un autre moyen.
Ouvrez votre fichier .bashrc et collez ce code en bas de page
test -f ~/.wttr.in || curl -sk wttr.in -o ~/.wttr.in
find ~ -maxdepth 1 -name .wttr.in -cmin +5 -exec curl -sk wttr.in -o ~/.wttr.in \;
head -7 ~/.wttr.in | tail -5
W(){ find ~ -maxdepth 1 -name .wttr.in -cmin +5 -exec curl -sk wttr.in -o ~/.wttr.in \;; head -27 ~/.wttr.in; }
Sauvegardez et fermez votre .bashrc
et exécutez la commande suivante pour mettre à jour bash :
. .bashrc
puis tapez W
majuscule
Pour une sortie météo encore plus courte http://weather.tuxnet24.de fournit les données météorologiques de Yahoo ! en format texte et xml.
Les fichiers du XML peuvent ensuite être obtenus à l'aide d'un analyseur XML comme xmllint, par exemple.
J'ai écrit un q&d weather-fetch script, qui obtient la température actuelle et la description du temps, puis stocke un symbole unicode correspondant à la description et le sort comme suit
6°C
Je mets régulièrement à jour via cronjob et utilise ensuite la sortie dans mon statut de plateau.
Obtenez votre ID sur yahoocom/news/weather. Changez d'emplacement et recherchez l'ID dans l'URL (par exemple, si l'URL est yahoocom/news/weather/germany/north-rhine-westphalia/bielefeld-20066057, l'ID est 20066057).
Le XML contient d'autres champs, par exemple les données de prévision, le vent, etc. - vous pouvez également les analyser, si vous le souhaitez.
Malheureusement, certains symboles météorologiques ne sont pas représentés dans la police Ubuntufont n'hésitez pas à les adapter.
Voici mon script (remplacez 20066057 par votre ID si vous ne vivez pas à Bielefeld) - dépend de bash, curl et xmllint.
#!/bin/sh
#
# write xml to variable
w_xml=$(curl -Ls "http://weather.tuxnet24.de/?id=20066057&mode=xml");
# get fields from xml via xmllint | xargs for trimming
# weather description
w_txt=$(xmllint --xpath "string(//current_text)" - <<<"$w_xml" | xargs);
# temperature | remove spaces from text (°C prepended by space)
w_tpc=$(xmllint --xpath "string(//current_temp)" - <<<"$w_xml" | xargs); w_tpc=${w_tpc//[[:blank:]]/};
# further fields not used atm
# w_tph=$(xmllint --xpath "string(//current_temp_high)" - <<<"$w_xml" | xargs);
# w_tpl=$(xmllint --xpath "string(//current_temp_low)" - <<<"$w_xml" | xargs);
# set $w_sym according to $w_txt
if [ "$w_txt" == "Sunny" ]; then w_sym="";
elif [ "$w_txt" == "Mostly Sunny" ]; then w_sym="";
elif [ "$w_txt" == "Showers" ]; then w_sym="";
elif [ "$w_txt" == "Clear" ]; then w_sym="";
elif [ "$w_txt" == "Thunderstorms" ]; then w_sym="";
elif [ "$w_txt" == "Scattered Thunderstorms" ]; then w_sym="";
elif [ "$w_txt" == "Isolated Thundershovers" ]; then w_sym="";
elif [ "$w_txt" == "Cloudy" ]; then w_sym="";
elif [ "$w_txt" == "Mostly Cloudy" ]; then w_sym="";
elif [ "$w_txt" == "Partly Cloudy" ]; then w_sym="";
elif [ "$w_txt" == "Breezy" ]; then w_sym="";
# if unknown text, set text instead of symbol
else w_sym=$w_txt;
fi
# output <symbol><space><temp-in-°C>
echo "$w_sym"" ""$w_tpc";