【发布时间】:2012-11-19 18:10:41
【问题描述】:
我正在尝试创建一个将时间字符串转换为总分钟数的函数,即“11:22”将返回 682
str_to_min(){
ARR_T=$(echo $1 | tr ":" "\n")
HOUR=${ARR_T[0]}
MINUTE=${ARR_T[1]}
let MIN=(60*$HOUR)
let MIN=($MIN+$MINUTE)
#echo total minutes $MIN
return $MIN
}
str_to_min "11:22"
但我不断收到以下错误:
./find_service_to_display.sh: line 5: let: MIN=(60*11: missing )' (error token is "11")
./find_service_to_display.sh: line 6: let: MIN=(11: missing)'(错误标记是“11”)
【问题讨论】:
-
您是否尝试过使用
echo或printf进行调试? -
它不起作用的原因是
ARR_T=$(echo $1 | tr ":" "\n")没有创建数组,它创建了一个字符串变量,中间恰好有一个换行符。然后当你使用它时,在表达式中间有一个换行符会导致......问题。
标签: bash function variables math scripting