每次启动我的应用程序都需要sysdate-2 date。我为此创建了shell脚本。但在月结束时我面临着这个问题。它没有正确更新。
我的剧本
a1=`date +%d`
a1=`expr $a1 - 2`
b1=`date +%m-%Y`
rm LastTopupDate.txt
echo $a1-$b1 >> Date.txt
帮助我解决这个问题。?
答案 0 :(得分:1)
假设GNU date
,您可以使用
a1=$(date +%s)
b1=$(date +%m-%Y --date @$((a1-2*86400)))
其他实现的语法可能不同,但同样的想法适用:a1
是表示为UNIX时间戳的日期(自固定时期以来的秒数),b1
是日期发生在2天(一天86,400秒)之前。
GNU date
还提供了更好的快捷方式:
b1=$(date +%m-%Y --date '2 days ago')
答案 1 :(得分:0)
回答关于昨天约会的标题问题,这里应该适用于不提供GNU日期的系统:
h=$(date +%H)
today=$(date +%d)
for i in -12 -6 +0 +6 +12; do
gmth=$(TZ=UTC$i date +%H)
gmttoday=$(TZ=UTC$i date +%d)
if [ $gmttoday == $today ] && [ $gmth -gt 4 ]; then
TZ=UTC$((i+24)) date +%d-%m-%Y
break
fi
done