Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Shell当前日期减去天数_Bash_Shell_Datetime_Debian - Fatal编程技术网

Bash Shell当前日期减去天数

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

我是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 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