두 개의 시간 변수가 있습니다. 쉘 스크립트의 if 문에서 비교하고 싶습니다.
예를 들어
time1=HH:MM:SS
및 time2=HH:MM:SS
.
형식은 입니다 HH:MM:SS
.
if [it matched]
then
echo "matched"
else
echo "not matched"
fi
답변1
두 변수(내용)를 특정 HH:MM:SS 문자열과 비교하려면 간단히 해당 문자열과 비교하고 논리적 "and"( &&
)를 사용하여 테스트를 함께 연결하면 됩니다.
if [ "$time1" = "01:23:45" ] && [ "$time2" = "01:42:42" ]
then
echo matched
else
echo not matched
fi
case
또 다른 옵션은 특정 HH:MM:SS를 일치시키지 않으려는 경우 타이밍 일치에 어느 정도 유연성을 허용하는 ;를 사용하는 것입니다 . 먼저, 암시적 "and"를 사용하여 두 번을 연결해 보겠습니다.
time1=01:23:45
time2=01:42:42
case "$time1,$time2" in
(01:23:45,01:42:42) echo yes;;
esac
스크립트 독자가 무슨 일이 일어나고 있는지 이해할 수 있도록 여기에 쉼표를 삽입했습니다.
SS
이제 time2 부분 에 대해 별로 신경 쓰지 않는다고 가정합니다 .
case "$time1,$time2" in
(01:23:45,01:42:*) echo yes;;
esac
또는 time2의 초가 특정 범위 내에 있기를 원할 수도 있습니다.
case "$time1,$time2" in
(01:23:45,01:42:4[1-3]) echo yes;;
esac
거기에서 예제를 확장할 수 있습니다.
답변2
형식이 동일하면 다른 문자열과 비교하면 됩니다.
$ [ "$time1" = "$time2" ] && echo "match" || echo "no match"