쉘 스크립트에서 시간을 비교하는 방법

쉘 스크립트에서 시간을 비교하는 방법

현재 시간이 정오 12시 이전인지 이후인지 확인하는 간단한 스크립트를 작성하려고 합니다.

#!/bin/bash
var1=`date +"%T"` # error "not an integer"
var2='12:00:00'
if [ $var1 -lt $var2 ]; then # always false
    echo "Good morning!"
else
    echo "Good afternoon!"
fi

오류는 var1이 정수여야 하고 조건이 항상 false임을 나타냅니다. 나는 도움이 필요해. 매우 감사합니다.

답변1

사용 중인 테스트에서는 정수만 비교할 수 있습니다. date +%T포함된 문자열이 생성되므로 :테스트가 실패합니다.

사용 date +%H하고 설정할 수 있습니다 var2=12.

date +%H%M%S또는 을 사용하여 설정할 수 있습니다 var2=120000.

즉, $(date ...)백틱 대신 사용하는 것이 좋습니다. 읽기가 더 쉽고 여러 명령을 하나로 묶을 수 있습니다.

관련 정보