Bash Shell当前日期减去天数
我是bash和shell的新手,但我正在运行debian安装,我正在尝试制作一个脚本,它可以在不需要安装任何附加软件包的情况下找到过去的日期。从教程中,我已经到了这个阶段:Bash Shell当前日期减去天数,bash,shell,datetime,debian,Bash,Shell,Datetime,Debian,我是bash和shell的新手,但我正在运行debian安装,我正在尝试制作一个脚本,它可以在不需要安装任何附加软件包的情况下找到过去的日期。从教程中,我已经到了这个阶段: #!/bin/sh # # BACKUP DB TO S3 # # VARIABLES TYPE="DATABASE" DAYS="30" # GET CURRENT DATETIME CURRENTDATE="$(date +%Y%m%d%H%M%S)" # GENERATE PAST DATE FROM DAYS
#!/bin/sh
#
# BACKUP DB TO S3
#
# VARIABLES
TYPE="DATABASE"
DAYS="30"
# GET CURRENT DATETIME
CURRENTDATE="$(date +%Y%m%d%H%M%S)"
# GENERATE PAST DATE FROM DAYS CONTSTANT
OLDERDATE=`expr $CURRENTDATE - $DAYS'
# CALL PYTHON SCRIPT WITH OLDERDATE ARGUMENT
python script.py $OLDERDATE
我陷入困境的是,我的“天”只是数字30,并且不是日期时间格式,所以当我从currentdate变量减去它时,它显然是不兼容的
有谁能帮我找到一种方法让它正常工作吗?试试看
date -d '30 days ago'
应该在debian上执行此操作。尝试执行以下操作:
#!/bin/sh
#
# BACKUP DB TO S3
#
# VARIABLES
TYPE="DATABASE"
DAYS="30"
# GET CURRENT DATETIME
CURRENTDATE="$(date +%Y%m%d%H%M%S)"
# GENERATE PAST DATE FROM DAYS CONSTANT
OLDERDATE="$(date "+%Y%m%d%H%M%S" -d "$DAYS days ago")"
# CALL PYTHON SCRIPT WITH OLDERDATE ARGUMENT
python script.py "$OLDERDATE"
请参见\date\strings中的
info coreutils'date invocation'| less+/28.7\Relative\items\in\date\strings
您可以修改python脚本——这样您就不必依赖于date
的特定实现,您可以使用以下脚本:
#!/bin/bash
days=73
while [ ${days} -ge 0 ]; do
date -d "${days} days ago" +'%F'
days=$((days-1))
done