📅  最后修改于: 2023-12-03 15:23:00.406000             🧑  作者: Mango
如果你是一名程序员,你可能对天气不太关心,但是,有时候你需要知道天气状况以便决定你是否应该出门或穿什么衣服。这时候,命令行天气就非常的有用了。命令行天气是一个基于Shell-Bash的小工具,它能够在命令行中显示天气情况,让你更方便快捷地获取天气信息。
使用命令行天气非常简单,你只需在终端输入以下命令即可:
$ curl wttr.in/
然后,你就能看到当地的天气状况了。
命令行天气有以下几个功能和特点:
命令行天气支持以下输入参数:
命令行天气支持以下输出格式:
png
格式:显示当地天气图标的png文件json
格式:以json格式输出天气状况信息text
格式:以文本格式输出天气状况信息html
格式:以html格式输出天气状况信息以下是一个简单的Shell-Bash实现,你可以根据自己的需求进行修改和定制:
#!/bin/bash
# 根据IP地址查询当地城市
IP=$(curl -s https://ipinfo.io/ip)
CITY=$(curl -s https://ipinfo.io/city)
if [ $# -eq 1 ]; then
case $1 in
-h|--help )
echo "Usage: weather [OPTIONS]"
echo " -h, --help Show this help message and exit"
echo " -v, --version Show version information and exit"
echo " -q, --quiet Quiet mode, only output the weather condition"
echo " -o, --output FORMAT Customize output format, supported formats: json, text, png, html"
echo " -m, --moon Show the moon phase information"
echo " -l, --lang LANG Customize output language"
echo " -c, --city CITY Customize query city, default query by IP address"
echo " -f, --forecast Show the weather condition for the next seven days"
exit 0
;;
-v|--version )
echo "Weather 1.0.0"
exit 0
;;
-q|--quiet )
curl -s http://wttr.in/$CITY?format=%C,%t
exit 0
;;
-o|--output )
if [ -z "$2" ]; then
echo "Error: No output format specified."
exit 1
fi
case $2 in
json )
curl -s https://wttr.in/$CITY?format="%C,%t,%h,%p,%w,%m" | awk -v FS="," -v OFS="\n" '{split($6,a," ");print ("{\n\tcondition: \""$1"\",\n\ttemperature: \""$2"\",\n\thumidity: \""$3"\",\n\tpressure: \""$4"\",\n\twind: \""$5"\",\n\tmoon: \""a[2]"\",\n}")}'
exit 0
;;
text )
curl -s wttr.in/$CITY?format="%C %t, %h, %p, %w"
exit 0
;;
png )
curl -s wttr.in/$CITY.png
exit 0
;;
html )
curl -s wttr.in/$CITY?format="%C<br>%t<br>%h<br>%p<br>%w" | awk '{print "<html>\n<body>\n<pre>\n" $0 "\n</pre>\n</body>\n</html>"}'
exit 0
;;
* )
echo "Error: Unsupported output format $2."
exit 1
;;
esac
;;
-m|--moon )
MOON=$(curl -s wttr.in/$CITY?format="%m")
echo "Moon phase: $MOON"
exit 0
;;
-l|--lang )
if [ -z "$2" ]; then
echo "Error: No language specified."
exit 1
fi
LANG=$2
curl -s wttr.in/$CITY?lang=$LANG
exit 0
;;
-c|--city )
if [ -z "$2" ]; then
echo "Error: No city specified."
exit 1
fi
CITY=$2
curl -s wttr.in/$CITY
exit 0
;;
-f|--forecast )
curl -s wttr.in/$CITY?format="%F"
exit 0
;;
* )
echo "Error: Unsupported option $1."
exit 1
;;
esac
else
curl -s wttr.in/$CITY
exit 0
fi
命令行天气是一个非常好用的小工具,它可以让你更方便快捷地获取当地的天气信息,而不需要使用复杂的GUI程序。通过命令行天气,你可以快速准确地了解当地的天气状况,以便做出更加明智的决策。