shell编程之条件语句 一.条件测试 条件测试命令: test 条件表达式 或者 [ 条件表达式 ] 1.文件测试 -d:测试是否为目录 -e:测试文件或目录是否存在 -f:测试是否为文件 -r:测试是否有读权限 -w:测试是否有写权限 -x:测试是否有执行权限 例如:
[root@ns1 ~]# [ -d /media/cdrom ] [root@ns1 ~]# echo $? 1返回值为0,表示存在,不为0,则表示不存在 也可以结合逻辑测试一起来使用 例如:
[root@ns1 ~]# mkdir -p /media/cdrom [root@ns1 ~]# [ -d /media/cdrom ] && echo YES YES当文件夹存在时,输出YES 2.整数值比较 -eq:a等于b -ne:a不等于b -gt:a大于b -lt:a小于b -le:a小于等于b -ge:a大于等于 3.字符串比较 ==:字符串相等 !=:字符串不相等 -z:检查字符串是否为空 4.逻辑测试 &&:逻辑与,表示并且 ||:逻辑或,表示或者 !:逻辑否,表示不 例如:输出Linux内核版本号第1位和第2位,判断版本号
[root@ns1 ~]# mnum=$(uname -r|awk -F. '{print $1}') //给mnum赋值,等于内核号第一位 [root@ns1 ~]# snum=$(uname -r|awk -F. '{print $2}') //给mnum赋值,等于内核号第二位 [root@ns1 ~]# [ $munm -eq3 ] && [ $snum -lt 20 ] && echo 符合 //比较,都符合输出符合 符合二.if语句 1.单分支的if语句 if 条件测试 then 命令序列 fi
[root@ns1 ~]# ./jjsc.sh not en.u2.双分支if语句 if 条件测试 then 命令序列1 else 命令序列2 fi s [root@ns1 ~]# ./jjsc.sh not en.us3.多分支if语句 if 条件测试1 then 命令序列1 elif 条件测试2 then 命令序列2 else 命令序列3 fi
