shell脚本基础学习(五)
整数运算
方法一:expr [root@client tmp]# expr 1 + 2 3 [root@client tmp]# A=156 [root@client tmp]# B=456 [root@client tmp]# expr $A + $B 612
* / % 取模,取除法运算后的余数
方法二:$(()) + - * / % [root@client tmp]# echo $((6*9)) 54 [root@client tmp]# echo $(((9-6)9)) 27 [root@client tmp]# echo KaTeX parse error: Expected EOF, got # at position 29: …oot@client tmp]#̲ sum=((69));echo $sum 54
方法三:$[] + - * / % [root@client tmp]# echo $[456+789] 1245
方法四:let let [root@client tmp]# let num2=9+25 ;echo $num2 34
Linux计算器
#bc //交互式操作 9/2 4 scale=2 //指定精度,精度就是小数点后保留几位小数 9/2 4.50
ctrl d 退出
非交互式操作 [root@client tmp]# echo “0.36+356” |bc 356.36 [root@client tmp]# echo “scale=6;10/3” |bc 3.333333
进制之间的转换 [root@client tmp]# echo “ibase=2;11111111” | bc //将二进制数转成十进制数 255 [root@client tmp]# echo “ibase=10;obase=16;11” | bc //将十进制数转成16进制数 B [root@client tmp]# echo “ibase=10;obase=2;255” | bc /将十进制数转成二进制数 11111111
for语句
for 变量 in 列表 do 循环体 done
#!/bin/bash for i in 1 2 3 4 5 do echo "hello world" done [root@client tmp]# bash bbb.sh hello world hello world hello world hello world hello world #!/bin/bash for i in 1 2 3 4 5 do echo "$i hello world" done [root@client tmp]# bash bbb.sh 1 hello world 2 hello world 3 hello world 4 hello world 5 hello world #!/bin/bash for i in {1..100} do echo "$i hello world" done #!/bin/bash for i in {1..10} do useradd user$i echo user$i |passwd --stdin user$i done #!/bin/bash for i in {1..10} do userdel -r user$i done
for ((初始值;范围;增幅)) do 循环体 done
for ((i=1;i<=10;i++)) i++ ======== i+1 i-- ======= i-1 do echo $i done
((i=1;i<=10;i++)) 初始值 范围 增幅
运行方式当i=1的时候去比较范围,符合范围就打印1,然后拿1去i++,结果在去比较范围,符合范围就打印结果,一值循环到不符合范围结束循环
#!/bin/bash for ((i=1;i<=10;i++)) do echo $i done #!/bin/bash for ((i=10;i>0;i--)) do echo $i done
for 变量 in 列表 do for 变量 in 列表 do 循环体 done 循环体 done
seq seq 1 5 定义起始数为1 结束数为5 1 2 3 4 5
seq 1 2 5 定义步进数 下一个数字值=前一个数字值+步进制 1 3 5
seq 1 6 29 1 7 13 19 25
#!/bin/bash for i in `seq 1 6 29` do echo $i done 打印99乘法表 i<=j 1*1=1 i=j 1*2=2 i<j