2つの時間変数があります。シェルスクリプトのif文で比較したいです。
たとえば
time1=HH:MM:SS
、time2=HH:MM:SS
。
形式はですHH:MM:SS
。
if [it matched]
then
echo "matched"
else
echo "not matched"
fi
答え1
2つの変数(内容)を特定の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」を使って2回接続してみましょう。
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"