Hitachi

Advanced Shell 


10.3.11 cmpDate(日付の比較)

形式

cmpDate  日付1  {eq|ne|ge|gt|le|lt}  日付2

機能

引数に指定された2つの日付を比較します。

次の場合,1を出力します。

次の場合,0を出力します。

引数

日付1

日付を示す文字列を指定します。

日付2

日付を示す文字列を指定します。

日付には,dateコマンドにおける絶対日時による日付の形式を指定できます(例:yyyy/mm/dd,yyyymm-dd,yyyymmdd,mm/dd/yyyyなど)。

eq

日付1が日付2と等しいことを判定します。

ne

日付1が日付2と等しくないことを判定します。

ge

日付1が日付2以上であることを判定します。

gt

日付1が日付2より大きいことを判定します。

le

日付1が日付2以下であることを判定します。

lt

日付1が日付2より小さいことを判定します。

標準出力への出力

1または0。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

引数の日付1日付2に指定できる文字列は,dateコマンドにおける絶対日時による日付の形式と同じですが,指定できる文字列かどうかのチェックはしません。

使用例

cmpDate 2016/05/02 eq 2016/05/02     # 「1」が出力される。
cmpDate 2016/05/02 ne 2016/05/02     # 「0」が出力される。
cmpDate 20160505 ge 20160502         # 「1」が出力される。
cmpDate 20160101 gt 20160502         # 「0」が出力される。
cmpDate 20160505 le 20160502         # 「0」が出力される。
cmpDate 20160101 lt 20160502         # 「1」が出力される。

# 変数date1が示す日付と変数date2が示す日付が異なる場合,1でreturnする。
result=$(cmpDate "$date1" ne "$date2")
if [[ $result -eq 1 ]]; then
  return 1
fi