Shell脚本
条件测试语句
格式:[ 条件表达式 ] //两边有空格
文件测试常用参数:
-d | 测试文件是否为目录 |
-e | 测试文件是否存在 |
-f | 判断是否为一般文件 |
-r | 测试当前用户是否有读权限 |
-w | 测试当前用户是否有写权限 |
-x | 测试当前用户是否有执行权限 |
文件测试是使用指定条件来判断文件或目录是否存在、权限是否满足等情况。
常用的整数比较运算符:
-eq | 是否等于 |
-ne | 是否不等于 |
-gt | 是否大于 |
-lt | 是否小于 |
-le | 是否小于或等于 |
-ge | 是否大于或等于 |
整数比较运算符仅仅是对数字进行操作。
常见的字符串比较运算符:
= | 比较字符串内容是否相同 |
!= | 比较字符串内容是否不同 |
-z | 判断字符串是否为空 |
字符串比较语句用于判断测试字符串是否为空,或两个字符串是否相同。
流程控制语句
if条件测试语句:
if语句分为单分支结构、双分支结构、多分支结构
单分支结构:
if 条件 //条件判断
then 命令序列 //满足条件执行then
fi //不满足条件,结束退出
[root@linuxprobe ~]# vim mkcdrom.sh #!/bin/bash //脚本声明 DIR="/media/cdrom" //定义变量 if [ ! -d $DIR ] //判断目录是否存在 then mkdir -p $DIR //不存在则创建 fi
双分支结构:
if 条件
then 命令序列1 //满足条件执行then
else 命令序列2 //不满足执行else
fi //结束退出
[root@superwu10 shell.test]# vim checkhost.sh
#!/bin/bash
IP=192.168.10.30
ping -c 3 $IP &> /dev/null
if [ $? -eq 0 ]
then
echo "$IP is online"
else
echo "$IP is offline"
fi
多分支结构:
if 条件1
then 命令序列1 //满足条件1执行t
elif 条件2
then 命令序列2 //满足条件2执行
elif 条件3
then 命令序列3 //满足条件3执行
else
命令序列4 //以上条件都不满足执行
fi //结束退出
[root@superwu10 shell.test]# cat checkchengji2.sh
#!/bin/bash
read -p "Enter your chengji (0-100)" DATA
if [ $DATA -ge 90 ] && [ $DATA -le 100 ]
then echo "$DATA is youxiu"
elif [ $DATA -lt 90 ] && [ $DATA -ge 70 ]
then echo "$DATA is lianghao"
elif [ $DATA -lt 70 ] && [ $DATA -ge 60]
then echo "$DATA is pass"
elif [ $DATA -lt 60 ] && [ $DATA -ge 0 ]
then echo "$DATA is not pass"
else echo "You enter is Error,please enter 0-100"
fi