시간 X를 찾는 방법은 다른 시간 Y 및 Z보다 크거나 같습니다.

시간 X를 찾는 방법은 다른 시간 Y 및 Z보다 크거나 같습니다.

3번하자

time1=11:34:45

time2:12:39:32

target_time:12:45:48

그렇다면 목표 시간이 time1 또는 time2보다 크거나 같은지 어떻게 알 수 있을까요?

원하는 출력:

the target time 12:45:48 is greater or equal to 12:39:32

답변1

먼저 시간을 비교하기 쉬운 일반 형식(예: 초)으로 변환할 수 있습니다.

이는 다음과 같은 bash 함수에서 수행할 수 있습니다.

time_to_seconds() {
    IFS=: read -r hours minutes seconds <<< "$1"
    echo $(( hours * 3600 + minutes * 60 + seconds ))
}

IFS=:시, 분, 초를 읽는 데 사용할 수 있도록 문자열을 콜론으로 구분하도록 bash에 지시합니다 read.

그런 다음 다음과 같이 시간 변수를 초로 변환할 수 있습니다.

time1_secs=$(time_to_seconds "$time1")
time2_secs=$(time_to_seconds "$time2")
target_time_secs=$(time_to_seconds "$target_time")

뭐, 그냥 하기만 하면 되는 문제야비교하다, 이와 같이:

if [ $target_time_secs -ge $time2_secs ]; then
    echo "the target time $target_time is greater or equal to $time2"
fi

관련 정보