0 linux shell shell-script timestamps
我有两个时间变量。我想在 shell 脚本的 if 语句中比较它。
例如
time1=HH:MM:SS和time2=HH:MM:SS。
格式为HH:MM:SS.
if [it matched]
then
echo "matched"
else
echo "not matched"
fi
Run Code Online (Sandbox Code Playgroud)
如果您想将两个变量的(内容)与特定的 HH:MM:SS 字符串进行比较,则只需将它们与这些字符串进行比较,并使用逻辑“与”( &&)将测试联系在一起:
if [ "$time1" = "01:23:45" ] && [ "$time2" = "01:42:42" ]
then
echo matched
else
echo not matched
fi
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用case; 它允许在匹配时间方面具有一定的灵活性,以防您不想匹配特定的 HH:MM:SS。首先,让我们用一个隐含的“和”将这两个时间联系在一起:
time1=01:23:45
time2=01:42:42
case "$time1,$time2" in
(01:23:45,01:42:42) echo yes;;
esac
Run Code Online (Sandbox Code Playgroud)
在这里,我加了一个逗号,只是为了帮助脚本阅读器了解发生了什么;可以省略。
现在假设您不太关心 time2 的SS部分:
case "$time1,$time2" in
(01:23:45,01:42:*) echo yes;;
esac
Run Code Online (Sandbox Code Playgroud)
或者,您可能希望 time2 的秒数在某个范围内:
case "$time1,$time2" in
(01:23:45,01:42:4[1-3]) echo yes;;
esac
Run Code Online (Sandbox Code Playgroud)
您可以从那里扩展示例。