目的
目的是使用命令行和bash shell脚本来获取Sunrise&任何给定位置的日落时间信息。
操作系统和软件版本
- 操作系统:-与Linux发行版无关。
要求
已安装lynx
工具并访问shell命令行。您的位置代码来自https://weather.codes/search/
。
困难
简单
约定
使用说明
我获得Sunrise& amp;的主要动机日落时间,因此编写此简单脚本适用于家庭自动化。就我而言,我想在太阳能发电足以满足设备电力需求的时候启动某些设备。鉴于我的日出时间正确,日落时间信息,可以以适当的小时数抵消开始结束时间。
日出&日落脚本
创建一个 shell 脚本,例如。sunrise-sunset.sh
具有以下内容:
#!/bin/bash
# First obtain a location code from: https://weather.codes/search/
# Insert your location. For example LOXX0001 is a location code for Bratislava, Slovakia
location="LOXX0001"
# Obtain sunrise and sunset raw data from weather.com
sun_times=$( lynx --dump https://weather.com/weather/today/l/$location | grep "\* Sun" | sed "s/[[:alpha:]]//g;s/*//" )
# Alternative curl/wget solution. In case you wish to use curl or wget instead of lynx comment the above line and uncomment one of the lines below:
#sun_times=$( curl -s https://weather.com/weather/today/l/$location | sed 's/<span/\n/g' | sed 's/<\/span>/\n/g' | grep -E "dp0-details-sunrise|dp0-details-sunset" | tr -d '\n' | sed 's/>/ /g' | cut -d " " -f 4,8 )
#sun_times=$( wget -qO- https://weather.com/weather/today/l/$location | sed 's/<span/\n/g' | sed 's/<\/span>/\n/g' | grep -E "dp0-details-sunrise|dp0-details-sunset" | tr -d '\n' | sed 's/>/ /g' | cut -d " " -f 4,8 )
# Extract sunrise and sunset times and convert to 24 hour format
sunrise=$(date --date="`echo $sun_times | awk '{ print $1}'` AM" +%R)
sunset=$(date --date="`echo $sun_times | awk '{ print $2}'` PM" +%R)
# Use $sunrise and $sunset variables to fit your needs. Example:
echo "Sunrise for location $location: $sunrise"
echo "Sunset for location $location: $sunset"
另外,您也可以从github克隆最新版本:
$ git clone https://github.com/linuxconfig/Sunrise-Sunset-Shell-Script.git
从以下位置获取您的位置代码https://weather.codes/search/
并分配给location
变量,同时替换当前示例代码。保存文件并使其可执行:
$ chmod +x sunrise-sunset.sh
获取日出&日落时间
确保lynx
该命令在Linux系统上可用或运行:
UBUNTU/DEBIAN
# apt install lynx
CENTOS/REDHAT
# yum install lynx
安装它。运行脚本剩下的一切:
$ ./sunrise-sunset.sh
Sunrise for location LOXX0001: 06:47
Sunset for location LOXX0001: 18:34
我希望您能像我一样找到这个脚本。