Shell功能
脚本获取域名的IP地址
自动检测公网IP地址并更新到公云PubYun
获取公网IP地址的多种方式
深入理解 Bash 中的管道与子 Shell:防止常见陷阱
CentOS和Ubuntu的Shell兼容点
主机之间ping命令检测
脚本匹配ip地址正则表达式
CentOS 7.x系统三级等保规范脚本
Shell数值计算的几种方法
脚本单实例运行的进程锁
主机通过客户端实时上传本地文件到对象存储
执行命令前关闭history记录
Bash中的变量声明与处理
sed:使用正则匹配IP地址
sed: 匹配并在中间位置插入字符
Find排除多个目录并按多个后缀查找文件
Linux主机巡检脚本
增加CPU使用率到指定范围
本文档使用 MrDoc 发布
-
+
home page
Shell数值计算的几种方法
在Linux下总会遇到数值计算问题,由于Linux下变量都属于弱变量,没有变量类型的概念。 例如定义一个变量:`x=1` 此时的变量x默认是一个字符串,即使看着像一个数字,所以当尝试用如下的方法去进行计算的时候,得到的结果却不是想要的 ``` echo $x+=1 # 输出:2+=1,并不是想要的结果2 ``` Linux下有多种方法进行计算,摘录如下: # 1.使用$[] 个人最常用的就是$[]方法进行计算,简单方便,适合不太复杂的计算。 ``` x=1 echo $[$x+=1] # 输出:2 ``` # 2.使用expr expr命令为Linux中的命令,一般用于整数值计算,但也可用于字符串操作。 使用格式: ``` expr var1 operator var2 ``` 例如: ``` x=1 expr $x + 4 # 输出:5 ``` >注意:表达式之间的空格,注意只能进行整数运算,如果操作数不为整数,命令将会报错。 此命令所有计算的结果会以整数形式返回,例如上述的表达式变为:`expr $x / 4 `,其结果为1,结果已经自动进行了取整操作。 # 3.使用(()) 使用方法:`((表达式1,表达式2,表达式3))` 相比上面的两种方法,(())这种方法略显强大,它的强大之处在于: 1) 支持a++,a--操作(是不是找到C语言的感觉) 2) 支持多个表达式运算,各个表达式之间用“,”分开 3) 双括号可以进行逻辑运算,四则运算 4) 双括号结构 扩展了for,while,if条件测试运算 5) 在双括号结构中,所有变量可以不加入:“$”符号前缀 ``` x=1 ((y = x + 1,z = y + 1)) echo $z # 输出:3 ``` 如果双括号带:$,将获得表达式值,赋值给左边变量 ``` a=10 b=10 total=$((a*b)) echo $total #输出:100 ``` 扩展流程控制语句(逻辑关系式) ```bash #!/bin/sh num=100; total=0; for((i=0;i<=num;i++)); do ((total+=i)); done echo $total; total=0; i=0; while((i<=num)); do ((total+=i,i++)); done echo $total; if((total>=5050));then echo "ok"; fi ``` # 4.使用 let 命令 ``` var=1 let "var+=1" 或 let var+=1 # 这种写法运算符间不能有空格 echo $var ``` output:`2` 使用方法: ``` let 表达式 ``` >注意:let必须是完整的算术表达式,即有等号两边
Nathan
April 16, 2023, 12:07 a.m.
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
PDF文件
Docx文件
share
link
type
password
Update password