在Shell脚本中查询天气信息,可以使用curl或wget等命令从在线气象服务获取数据,并根据返回的数据解析和显示当前城市的天气状况。以下是一个简单的示例,使用OpenWeatherMap API查询天气:
注册并获取API密钥:
- 访问OpenWeatherMap网站(https://openweathermap.org/)并注册一个免费帐户。
- 在控制面板中找到你的API密钥。
编写Shell脚本:
- 创建一个新的文件(如
weather.sh
),并将以下代码粘贴到其中:
- 创建一个新的文件(如
#!/bin/bash
# OpenWeatherMap API相关参数
api_key="your_api_key"
city_name="New York" # 替换为你要查询的城市名称
units="metric" # 可选:metric (摄氏度) 或 imperial (华氏度)
# 构建请求URL
url="http://api.openweathermap.org/data/2.5/weather?q=${city_name}&appid=${api_key}&units=${units}"
# 使用curl发送GET请求并获取响应
response=$(curl -s "$url")
# 解析JSON响应中的温度信息
temp=$(echo "$response" | jq '.main.temp')
# 显示天气信息
echo "当前城市: $city_name"
echo "温度: ${temp}°C"
# 检查jq是否安装
if [ $? -ne 0 ]; then
echo "请先安装jq工具以解析JSON响应!"
fi
修改API密钥和城市名称:
- 将上述脚本中的
your_api_key
替换为你在OpenWeatherMap上获得的API密钥。 - 将
city_name
变量设置为你想要查询的城市名称。
- 将上述脚本中的
安装jq:
jq
是一个用于处理JSON文本的强大命令行工具。- 如果你的系统中尚未安装,请使用以下命令安装:
- 对于Ubuntu或Debian系统:
sudo apt-get install jq
- 对于macOS系统:
brew install jq
- 对于Ubuntu或Debian系统:
赋予执行权限并运行脚本:
- 给脚本文件赋予执行权限:
chmod +x weather.sh
- 运行脚本:
./weather.sh
- 给脚本文件赋予执行权限:
这个脚本将输出所查询城市的当前温度。你可以通过修改脚本来获取更多的天气信息,例如风速、湿度等。注意,OpenWeatherMap的免费API有一定的请求限制。