현재 시간이 정오 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 ...)
백틱 대신 사용하는 것이 좋습니다. 읽기가 더 쉽고 여러 명령을 하나로 묶을 수 있습니다.