centos shell脚本中从文件读取变量进行数学计算

最终成果

data=$(cat /etc/frp/rebootnum)
echo $[ $data+1 ] > /etc/frp/rebootnum

----------------------------------------------------------

x=1+1  
echo $x 

你是不是期待着输出2啊?让你失望了,这样输出的结果是1+1。惊讶为什么呢?疑问这是因为在shell script中变量类型默认为“字符串”,所以若不指定变量类型,1+1是一个“字符串”而不是“计算式”。得意那么怎么得到我们想要的结果呢?疑问方法很多,但是总结起来就是两种,一种就是生命变量的类型。另一种是对特定的计算式进行处理。

1)首先看第一类方法:声明变量的类型

我对上述程序做出以下修改: 

declare -i x  
x=1+1  
echo $x  

在上述脚本中我把x声明为整型数字(integer)类型,这时输出结果为2

或者你可以这么写:

declare -i x  
declare -i y  
x=1  
y=2  
x=$x+$y  
echo $x  

输出结果为3,假如我没有声明 x, y 的类型为整型数字,那么输出结果是1+2

2)

a)使用let命令:(注意的是let仅支持整数运算)

let 'x=1+1'  
echo $x  

这时输出结果为2

b)使用$[ ]

x=1  
y=2  
x=$[ x+y]  
echo $x  
输出结果为:3
 

这里要注意的是注意: 

$[]将中括号内的表达式作为数学运算先计算结果再输出 
对$[]中的变量进行访问时加不加$无所谓 
$[]支持的运算符与let相同,但也只支持整数运算 
 

c)使用$(( ))

x=1  
y=2  
x=$(( x+y))  
echo $x  

输出结果是3

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值