2017-08-09 39 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