博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Day02 数值运算&条件判断
阅读量:6516 次
发布时间:2019-06-24

本文共 1769 字,大约阅读时间需要 5 分钟。

一、整数运算

1.1 expr 整数1 运算符 整数2

计算指定的表达式,并输出结果,注意整数和运算符间必须有空格,而且乘号必须用*转义。很少使用,忽略。

1.2 $[整数1 运算符 整数2]

计算指定的表达式,并输出结果。整数和运算符之间无需空格,乘号无需转义,引用变量无需加$符号。计算结果直接替换表达式本身

必须背下来,对于取余计算来说,余数永远不可能大于被除数。

1.3 let 变量=整数1 运算符 整数2

计算指定的表达式,引用变量无需加$符号,结果不输出到屏幕,必须通过echo来输出结果

1.3.1 let i++

等同于i=i+1

1.3.2 let i--

等同于i=i-1

1.3.3 let i+=3

等同于i=i+3

1.3.4 let i-=1

等同于i=i-1

1.3.5 let i*=2

等同于i=i*2

1.3.6 let i/=3

等同于i=i/3

二、小数运算

2.1 bc

直接运行bc可进入交互式界面,quit退出

scale 控制小数点位数
实战中结合管道发送表达式,多个表达式必须用;分隔
echo "scale=2;2.2+5;5.5/3"|bc#小数点留2位,计算两个表达式的值

2.2 小数值的比较

比较符号有>,>=,==,!=,<,<=

如果表达式成立,结果为1;表达式不成立,结果为0
echo "1>2"|bc 结果0
echo "4>3"|bc 结果1

三、条件判断

3.1 条件判断的格式

[ 判断条件 ] 常用,注意判断条件和方括号之间的空格

test 判断条件

3.2 字符串

3.2.1 [ 变量1 == 变量2 ]

判断变量1是否等于变量2

3.2.2 [ 变量1 != 变量2 ]

判断变量1是否不等于变量2

3.2.3 [ -z 变量 ]

判断字符串的长度是否为0,即变量为空(zero)

3.2.4 [ !-z 变量 ]

相当于-n。判断字符串的长度是否不为0,即变量非空(zero)

3.3 命令行中如何执行多条命令

3.3.1 A;B

执行A,执行B。你我没半毛钱关系

3.3.2 A && B

执行A,仅当A成功,才执行B。有你才有我

[ $USER == ‘root’ ] && yum install -y httpd

3.3.3 A || B

执行A,仅当A失败,才执行B。有你没我,有我没你

3.4 整数值

多个条件组合时,可以使用 [[ .. ]] 界定

3.4.1 [ -eq 变量 ]

equal。等于

3.4.2 [ -ne 变量 ]

not equal。不等于

3.4.3 [ -gt 变量 ]

greater than,大于

3.4.4 [ -ge 变量 ]

greater or equal。大于或等于

3.4.5 [ -lt 变量 ]

less than。小于

3.4.6 [ -le 变量 ]
less or equal。小于或等于

3.4.7 [ -le 1 -[o,a] -ge 99 ]

-o或

-a与

3.5 文件或目录

3.5.1 [ -e 对象 ]

对象存在(Exist)为真

3.5.2 [ -f file ]

存在并且为文件(File)则为真

3.5.3 [ -d file ]

存在并且为目录(Directory)则为真

3.5.4 [ -r file ]

文件可读(Read)则为真

3.5.5 [ -w file ]

文件可写(Write)则为真

3.5.6 [ -x file ]

文件可执行(eXecute)则为真

四、if条件判断

4.1 单分支if(仅判断正确)

if [ 判断 ];then

命令
fi

4.2 双分支if

if [ 判断 ];then

正确后执行命令
else
错误后执行命令
fi

4.3 多分支if

if [ 判断 ];then

正确后执行命令
elif [ 判断 ];then
错误后执行命令
elif [ 判断 ];then
错误后执行命令
......
else [ 判断 ];then
错误后执行命令
fi

本文转自 goldwinner 51CTO博客,原文链接:http://blog.51cto.com/355665/2069020,如需转载请自行联系原作者

你可能感兴趣的文章
不改一行代码定位线上性能问题
查看>>
定义运算符
查看>>
git管理
查看>>
告别暗黄皮肤变水嫩皮肤的8个小习惯
查看>>
加强Eclipse代码自动提示的方法
查看>>
GNS3-地址重叠环境中部署IPsec
查看>>
exchange online 用户疑问之许可证和用户数据归档
查看>>
QImage Mat IplImage 之间的相互转换
查看>>
使用eclipse与android studio 在开发自定义控件时的区别
查看>>
我的友情链接
查看>>
mysql学习笔记
查看>>
年年有鱼游戏Android源码项目
查看>>
java使用Iterator、for循环同步数据
查看>>
创建镜像iso文件
查看>>
Linux下创建软RAID5和RAID10实战
查看>>
C++类的存储
查看>>
ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
查看>>
解决使用Handler时Can't create handler inside thread that has not called Looper.prepare()
查看>>
跟我一起学docker(四)--容器的基本操作
查看>>
磁化强度
查看>>