我创建了带有时间选项参数的 az shell 脚本。(例如:--time 00:03:30)。我希望用户能够以 HH:MM:SS 以外的格式输入时间。我的脚本已经可以将 HH:MM:SS 转换为秒(这是最终结果需要的),但是 HH:MM:SS 格式很笨重。所以,我做了一个函数,将另一种格式(#h#m#s)转换为原始格式:
if [ "$(echo "$1" | grep -E "([[:digit:]]+[hms]|[[:digit:]]+[hms][[:digit:]]+[hms]|[[:digit:]]+[hms][[:digit:]]+[hms][[:digit:]]+[hms])")" ]; then
if [ "$(echo "$1" | grep "h")" ]; then
H="$(echo "$1" | sed -E 's|.*([[:digit:]]+)h.*|\1|')"
else
H=00
fi
if [ "$(echo "$1" | grep "m")" ]; then
M="$(echo "$1" | sed -E 's|.*([[:digit:]]+)m.*|\1|')"
else
M=00
fi
if [ "$(echo "$1" | grep "s")" ]; then
S="$(echo "$1" | sed -E 's|.*([[:digit:]]+)s.*|\1|')"
else
S=00
fi
echo "$H:$M:$S" | sed -Ee 's|:([[:digit:]]):|:0\1:|' -e 's|^([[:digit:]]):|0\1:|' -e 's|:([[:digit:]])$|:0\1|'
fi
是的,我已经创建了自己的解决方案。我来这里是为了找一个更好的。另外,如果您知道可以转换为秒的任何其他格式,请告诉我。