Linux(RH 5.3)マシンがあります
10日と日付を追加/計算する必要があるので、新しい日付(有効期限)を取得します)
例えば
# date
Sun Sep 11 07:59:16 IST 2012
だから私は取得する必要があります
NEW_expration_DATE = Sun Sep 21 07:59:16 IST 2012
新しい有効期限の計算方法をアドバイスしてください(bash、ksh、またはdateコマンドの操作?)
Linux(RH 5.3)マシンがあります
10日と日付を追加/計算する必要があるので、新しい日付(有効期限)を取得します)
例えば
# date
Sun Sep 11 07:59:16 IST 2012
だから私は取得する必要があります
NEW_expration_DATE = Sun Sep 21 07:59:16 IST 2012
新しい有効期限の計算方法をアドバイスしてください(bash、ksh、またはdateコマンドの操作?)
回答:
-d
スイッチを使用して、計算する日付を指定するだけです
date
Sun Sep 23 08:19:56 BST 2012
NEW_expration_DATE=$(date -d "+10 days")
echo $NEW_expration_DATE
Wed Oct 3 08:12:33 BST 2012
-d, --date=STRING display time described by STRING, not ‘now’
次のようなことができるので、これは非常に強力なツールです
date -d "Sun Sep 11 07:59:16 IST 2012+10 days"
Fri Sep 21 03:29:16 BST 2012
または
TZ=IST date -d "Sun Sep 11 07:59:16 IST 2012+10 days"
Fri Sep 21 07:59:16 IST 2012
または
prog_end_date=`date '+%C%y%m%d' -d "$end_date+10 days"`
したがって、$ end_date = 20131001の場合は$ prog_end_date = 20131011
brew install coreutils
GNUの日付関数をインストールするために使用しgdate
ます。
$ docker run -it bash bash bash-5.0# date -d "+10 days" date: invalid date '+10 days' bash-5.0#
$ date -v -1d
dateコマンドを使用して1日前の日付を取得するには:
$ date -v -1d
(現在の日付-1)は1日前を意味します。
$ date -v +1d
これにより、(現在の日付+1)は1日後を意味します。
同様に、以下に記述されたコードを「d」の代わりに使用して、年、月などを見つけることができます。
y-Year
m-Month
w-Week
d-Day
H-Hour
M-Minute
S-Second
date
、GNU date
(gdate
多くのBSDで)はサポートしていません。GNU date
は、受け入れられた答えの構文を使用します。常に覚えておいてください:GNUはUnixではない!
date
infoページにあるはずです!