【问题标题】:Calculations with string values from a config file [duplicate]使用配置文件中的字符串值进行计算[重复]
【发布时间】:2015-12-14 08:39:20
【问题描述】:

我想从配置文件中获取时间并将其相乘。 当我写像 30m 这样的时间时,它采用 case m 并使用 30m。但是我怎样才能用这个值进行计算。s 的情况正在正常工作。

 getTimeFromConfig(){
case $timestart in
*s )
echo ${timestart::-1};;
*m )
time = ${timestart::-1}
newtime= $(($time*60));;
*h )
time = ${timestart::-1}
newtime= $(($time*3600));;
esac
}

【问题讨论】:

  • @123 什么意思?
  • 您遇到的问题/错误是什么?
  • @l3x 不知道用-1怎么算
  • 这个函数应该做什么?你有任何错误吗?
  • echo 没有 mh 案例。

标签: bash shell


【解决方案1】:

=(赋值)周围不应有任何空格。

time = ${timestart::-1}
newtime= $(($time*60));;

应该是

time=${timestart::-1}
newtime=$(($time*60));;

同样,

time = ${timestart::-1}
newtime= $(($zeit*3600));;

应该是

time=${timestart::-1}
newtime=$(($zeit*3600));;

如果您只是想打印计算值,请执行以下操作:

    echo ${newtime}

mh的每个case语句中。


如果您希望此函数“返回”时间,您可以使用全局变量或从函数中打印并从调用者那里读取:

getTimeFromConfig()的末尾做:

    echo ${newtime}
  }

在调用者处:

timevalue=$(getTimeFromConfig)

【讨论】:

  • echo ${newtime},那是我的错。
猜你喜欢
  • 1970-01-01
  • 2020-08-17
  • 1970-01-01
  • 2018-08-08
  • 2016-11-18
  • 2019-01-26
  • 1970-01-01
  • 2014-11-01
  • 2014-11-08
相关资源
最近更新 更多