在终端中显示天气预报

2023年02月13日 突然间想实现diary.sh脚本自动获取天气状态的命令,经百度获得答案

1
curl -4 wttr.in

上述命令自动获取当前IP对应的天气状况。

wttr.in 是一个功能丰富的天气预报服务,它支持在命令行显示天气。它可以(根据你的 IP 地址)自动检测你的位置,也支持指定位置或搜索地理位置(如城市、山区等)等。哦,另外你不需要安装它 —— 你只需要使用 cURL 或 Wget(见下文)。

wttr.in 功能包括:

  • 显示当前天气以及 3 天内的天气预报,分为早晨、中午、傍晚和夜晚(包括温度范围、风速和风向、可见度、降水量和概率)
  • 可以显示月相
  • 基于你的 IP 地址自动检测位置允许指定城市名称、3 字母的机场代码、区域代码、GPS 坐标、IP 地址或域名。你还可以指定地理位置,如湖泊、山脉、地标等)
  • 支持多语言位置名称(查询字符串必须以 Unicode 指定)
  • 支持指定天气预报显示的语言(它支持超过 50 种语言)来自美国的查询使用 USCS 单位用于,世界其他地方使用公制系统,但你可以通过附加 ?u 使用 USCS,附加 ?m 使用公制系统。 )
  • 3 种输出格式:终端的 ANSI,浏览器的 HTML 和 PNG

就像我在文章开头提到的那样,使用 http://wttr.in,你只需要 cURL 或 Wget,但你也可以在你的服务器上安装它。 或者你可以安装 wego,这是一个使用 wtter.in 的终端气候应用,虽然 wego 要求注册一个 API 密钥来安装。

在使用 http://wttr.in 之前,请确保已安装 cURL。在Archlinux , majaro 中,使用命令安装Curl

1
sudo pacman -S curl

wttr.in 命令行示例

获取你所在位置的天气(http://wttr.in 会根据你的 IP 地址猜测你的位置):

1
curl wttr.in

通过在 curl 之后添加 -4,强制 cURL 将名称解析为 IPv4 地址(如果你用 IPv6 访问 wttr.in 有问题):

1
curl -4 wttr.in

如果你想检索天气预报保存为 png,还可以使用 Wget(而不是 cURL),或者你想这样使用它:

1
curl wttr.in/Dublin

显示地标的天气信息(本例中为艾菲尔铁塔):

1
curl wttr.in/~Eiffel+Tower

获取 IP 地址位置的天气信息(以下 IP 属于 GitHub):

1
curl wttr.in/@192.30.253.113

如果你在美国,强制 http://wttr.in 使用公制系统(SI):

1
curl wttr.in/New+York?m

使用 Wget 将当前天气和 3 天预报下载为 PNG 图像:

1
wget wttr.in/Istanbul.png

你可以指定 PNG 的透明度,这在你要使用一个脚本自动添加天气信息到某些图片(比如墙纸)上有用。

对于其他示例,请查看 wttr.in 项目页面或在终端中输入:

1
curl wttr.in/:help