计算机语言中空下划线,2017-7-31 Shell脚本编程基础

bash中的算术运算:help let

+, -, *, /, %取模(取余), **(乘方)

实现算术运算:

(1) let var=算术表达式

[root@centos7 ~]#a=20 [root@centos7 ~]#b=30 [root@centos7 ~]#c=$a+$b [root@centos7 ~]#let c=$a+$b [root@centos7 ~]#echo $c 50

(2) var=$[算术表达式]——var=$[a+b] echo $var

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

(3) var=$((算术表达式)) ——echo $((a+b))

(4) var=$(expr arg1 arg2 arg3 ...)——支持数字运算

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png (5) declare –i var = 数值

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

(6) echo ‘算术表达式’ | bc ——计算从1加到100

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

乘法符号有些场景中需要转义,如* 

bash有内建的随机数生成器:$RANDOM(0-32767)

echo $[$RANDOM%50] :0-49之间随机数

赋值

增强型赋值: +=, -=, *=, /=, %= 

let varOPERvalue

例如:let count+=3 自加3后自赋值 ——let a+= 5 相当于a=a+5

自增,自减:

let var+=1

let var++ ——

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

let var-=1

let var-

逻辑运算

true, false 1, 0 

与: 全是1结果为1,有0则是0

1 与 1 = 1 1 与 0 = 0 0 与 1 = 0 0 与 0 = 0 

或:有1则为1,全0则是0

1 或 1 = 1

1 或 0 = 1

0 或 1 = 1

0 或 0 = 0

非:!就是取反

! 1 = 0

! 0 = 1 

短路运算

短路与 第一个为0,结果必定为0 ——cmd1 &&cmd2:cmd1为假的时候,不去执行后面的命令,结果也为假

第一个为1,第二个必须要参与运算 ——cmd1 && cmd2:cmd1为真的时候,去执行cmd2,cmd2为真的时候,结果为真,cmd为假的时候,结果为假

短路或 第一个为1,结果必定为1——cmd1 || cmd2:cmd1为真的时候,不去执行cmd2,结果为真

cmd2第一个为0,第二个必须要参与运算 ——cmd1为假的时候,cmd2为真的时候,去执行cmd2 ,结果为真,cmd2为假的时候,结果为假

异或:^ 异或的两个值,相同为假,不同为真

例子:当a=5,b=8时,通过异或实现a与b的互换

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

条件测试

(1) 判断某需求是否满足,需要由测试机制来实现 专用的测试表达式需要由测试命令辅助完成测试过程

(2) 测试命令: test EXPRESSION

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

例1:如果比较两个值相等,则输出结果显示为'equal',可以采用短路与来实现 a=xcv,b=xcv

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

例2:此时,改变b的值,让其不等于a,那么采用短路或实现输出结果为'not equal'

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

[ EXPRESSION ] =等价test变量

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

在test测试用法中空字符等同于没有赋值,而给变量赋值0或是空格,就是赋值输出结果为真

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

test:

-n:非空为真判断变量是否为空一定要加双引号

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

-z:空为真当给sdc赋值后,不再为空,那么空为假,则不执行下面的命令

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

数值测试:

-gt 是否大于

-ge 是否大于等于

-eq 是否等于

-ne 是否不等于

-lt 是否小于

-le 是否小于等于

例1:

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

例2:

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

例3:读取磁盘分区利用率,如果利用率大于10则报警

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

字符串测试:

"在没有赋值的时候,给字符串加上引号"

== 是否等于 > ascii码是否大于ascii码

< 是否小于 != 是否不等于

=~ 左侧字符串是否能够被右侧的PATTERN所匹配 注意: 此表达式一般用于[[ ]]中扩展的正则表达式

[[ EXPRESSION ]] ——支持正则表达式

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

注意:EXPRESSION前后必须有空白字符,在正则表达式中,字符串不用加引号

211aa3143ba1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值