unix shell中转换字符串为数字
a=`date+%I`b=`date+%M`t1=$a*60+$becho$t1运行结果不是按照数字相加的...
a=`date +%I`
b=`date +%M`
t1=$a*60+$b
echo $t1
运行结果不是按照数字相加的 展开
b=`date +%M`
t1=$a*60+$b
echo $t1
运行结果不是按照数字相加的 展开
展开全部
这样:
a=`date +%I`
b=`date +%M`
t1=$(($a*60+$b))
echo $t1
追问
t1=$($a*60+$b)
麻烦再问一下这样为什么会编译错误?这两个有什么区别?
追答
$a*60+$b默认是以字符串进行运算,假设你前面a=2,b=3,那么将得到2*60+3这样一个字符串,当进行$(2*60+3) 时,因为当前环境下并没有这样一个名称为2*60+3的命令(注意是命令,比如date),所以会提示错误;而$(( )),是相当于一个运算符,可以这样使用 $((算式))。
你也可以用这个:$[$a*60+$b]
运算方法有很多。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
t1=`expr $a \* 60 + $b`
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询