算术运算
1.算术运算符: + - * / %
2.算术运算的实现
1) let varName=arithmetic expression(算术表达式)
2) varName=$[arithmetic expression]
3)varName=$((arithmetic expression))
4)varName=$(expr arg1 arg2 arg3...)
5)内建随机数$RANDOM
测试0-9的随机数
1 #!/bin/bash 2 for i in `seq 1 10`;do 3 let random=$RANDOM%10 4 echo $random 5 done
运行结果:
条件测试
1.格式
1>test expression
2>[ expression ]
3>[[ expression ]]
2.数值测试
-eq等于判断
-lt小于
-gt大于
-le小于或等于
-ge大于或等于
-ne不等于
3.字符串测试
==或=表示字符串是否相等
>是否大于
<是否小于
=~必须放在双中括号[[]]中右侧字符串是否是左侧的子串
-z判断字符串是否为空
-n判断字符串是否不为空
4.文件测试
-e或-a判断文件是否存在
-d判断是否为目录
-f判断是否为普通文件
-b判断是否为块设备文件
-c判断是否为字符设备文件
-h或-L判断是否为符号链接文件
-p判断是否为管道文件
-S判断是否为socket文件
-g存在且拥有sgid权限
-u存在且拥有suid权限
-k存在且拥有sticky权限
-r存在且可读权限
-w可写
-x可执行
-s存在且非空
-t fd fd表示文件描述符是否已经打开且与某终端相关
-N文件上一次被读取后是否被修改
-O当前有效用户是否为文件属主
-G当前有效用户是否为文件属组
file1 -ef file2测试两个文件是否指向同一个设备上的相同inode
-nt测试file1是否新于file2
-ot测试file1是否旧于file2
5,组合测试条件and(-a) or(-o) !
退出状态码
bash自定义退出状态码:exit [n]
脚本中一旦遇到exit就会立即终止,状态码取决于n;如果不定义则以最后一条命令为准