2013-01-19 18 views
5

Bash ve kabuk için yeniyim ama bir debian yüklemesi çalıştırıyorum ve ek paketler yüklemek zorunda kalmadan geçmişte bir tarih bulabilecek bir komut dosyası oluşturmaya çalışıyorum. öğreticiler itibaren ben bu sonuca vardık: Ben saplanıyor amBash Shell Geçerli Tarih Eksi Gün Sayısı

#!/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 

benim "günler" sadece sayı 30 ve formattted isnt datetime, bu nedenle bu gerçektir ben currentdate değişkenden eksi kendisine geldiğinde Açıkçası uyumlu değil.

Bu çalışmayı yapması için bir yol bulmama yardım edecek kadar kibar biri olur mu?

cevap

7

bu yöntemi deneyin:

#!/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" 

yerine python komut değiştirebilir info coreutils 'date invocation' | less +/28.7\ Relative\ items\ in\ date\ strings

15

debian yapmalıyım

date -d '30 days ago' 

deneyin.

0

öğrenin - Eğer date

özel uygulanmasına bağlı olmaz bu şekilde
İlgili konular