2017-08-09 38 views
0

我有这个test.sh如何将计算日期传递给bash shell?

#!/bin/bash 
echo $1 

调用它的工作原理:

sh ./test.sh $(date +"%F") 

我想从目前的日期减去5天,传递给的test.sh

sh ./test.sh $(date --date="date-5 day" +"%F") 

线以上不起作用。什么是正确的方法?

+0

你想做的事情不能做* * * *更具体,而且是@ jon-skeet的领域:什么是“减5天”的意思。这是120小时吗?在哪个时区?在哪个日历之后?在哪个区域?即使你“只是想要5天前”,事情也会变得相当复杂,因为在日期/时间计算中没有“正义”。因此,不要向bash提供这些信息,而应使用日期/时间CLI实用程序或脚本语言中的适当日期/时间库,并使用足够稳固的此类库来确保结果正确。 –

+3

请看[这个回答](https://unix.stackexchange.com/a/49055/46316) - 你想要'--date =“ - 5天”。 –

回答

1

我建议:

sh ./test.sh $(date --date="-5 day" +"%F") 

随着我的设置en_US.UTF-8命令date --date="-5 day" +"%F"输出2017-08-04