

シェルスクリプトで現在の時刻(hh:mm)を取得してif文で12:00～13:00の間かそうでないかで条件分岐するプログラムを書きたいです。

この場合、

[code]

    seccion_time=date '+%h'
    start_time=12:00
    finish_time=13:00
    
    if [ $seccion_time -gt $finish_time]; then
        if [  $seccion_time -lt $finish_time ]; then
            echo 処理開始
        fi
    fi
    
[/code]

これだとdate型のフォーマットが正しくなくて動かないので、正しいフォーマットやより良い書き方あればご指南お願いします。


CC BY-SA 4.0
2019-12-07T13:31:10.880
61223
2021-10-11T08:08:45.757
2020-11-19T08:08:38.060
3060
36290
question
shellscript
シェルスクリプトで現在の時刻(hh:mm)を取得してif文で分岐


この回答は[metropolis](https://ja.stackoverflow.com/users/16894/metropolis)さんのコメントを元にしたものです。

13:00を含まないなら

[code]

    if [ $(date '+%H') -eq 12 ]; then
        echo '処理開始'
    fi
    
[/code]

で良いかと。


CC BY-SA 4.0
2019-12-09T03:08:02.247
61252
2019-12-09T04:36:16.733
2019-12-09T04:36:16.733
12203
25936
61223
answer


時刻に : を含めなければそのまま数値として比較できます。

[code]

    now=$(date '+%H%M')
    start_time=1200
    finish_time=1300
    
    echo $now
    
    if [ $now -ge $start_time -a $now -lt $finish_time ]; then
        echo 処理開始
    fi
    
[/code]


CC BY-SA 4.0
2019-12-09T04:40:01.680
61254
2019-12-09T04:40:01.680
12203
61223
answer