七、Shell编程--流程控制

条件语句
1、if条件语句
当条件成立执行相应操作
1)单分支
if 条件 then
执行命令
fi
2)双分支
if 条件
then 执行命令1
else 执行命令2
fi
*示例
#!/bin/bash
age=20
if [[ $age -gt 18 ]];
then echo "已成年!"
else echo "未成年!"
fi
3)多分支
if 条件
then 执行命令1
elif 条件
then 执行命令2
...
else 执行命令n
fi
示例
#!/bin/bash
sallray=2000
if [ $sallray -lt 600 ];
then echo "低工资!"
elif [ $sallray -ge 600 ] && [ $sallray -lt 1000 ]
then echo "中等工资"
elif [ $sallray -ge 1000 ] && [ $sallray -lt 1800 ]
then echo "中高等工资"
else echo "高工资"
fi
2、case语句
case 变量 in
常量1)
命令1
;;
....
常量n)
命令n
;;
*)
命令n+1
;;
esac
示例
#!/bin/bash
sigal=3
case $sigal in
1 )
echo "开灯"
;;
2 )
echo "关灯"
;;
3 )
echo "停电"
;;
* )
echo "无法判断"
esac
3、常用的逻辑运算符
逻辑卷标
表示意思
1.
关于档案与目录的侦测逻辑卷标!
-f
常用!侦测『档案』是否存在 eg: if [ -f filename ]
-d
常用!侦测『目录』是否存在
-b
侦测是否为一个『 block 档案』
-c
侦测是否为一个『 character 档案』
-S
侦测是否为一个『 socket 标签档案』
-L
侦测是否为一个『 symbolic link 的档案』
-e
侦测『某个东西』是否存在!
2.
关于程序的逻辑卷标!
-G
侦测是否由 GID 所执行的程序所拥有
-O
侦测是否由 UID 所执行的程序所拥有
-p
侦测是否为程序间传送信息的 name pipe 或是 FIFO (老实说,这个不太懂!)
3.
关于档案的属性侦测!
-r
侦测是否为可读的属性
-w
侦测是否为可以写入的属性
-x
侦测是否为可执行的属性
-s
侦测是否为『非空白档案』
-u
侦测是否具有『 SUID 』的属性
-g
侦测是否具有『 SGID 』的属性
-k
侦测是否具有『 sticky bit 』的属性
4.
两个档案之间的判断与比较  ;例如[ test file1 -nt file2 ]
-nt
第一个档案比第二个档案新
-ot
第一个档案比第二个档案旧
-ef
第一个档案与第二个档案为同一个档案( link 之类的档案)
5.
逻辑的『和(and)』『或(or)』
&&
逻辑的 AND 的意思
||
逻辑的 OR 的意思
  
 
运算符号
代表意义
=
等于 应用于:整型或字符串比较  如果在[] 中,只能是字符串
!=
不等于 应用于:整型或字符串比较  如果在[] 中,只能是字符串
<
小于 应用于:整型比较  在[] 中,不能使用 表示字符串
>
大于 应用于:整型比较  在[] 中,不能使用 表示字符串
-eq
等于 应用于:整型比较
-ne
不等于 应用于:整型比较
-lt
小于 应用于:整型比较
-gt
大于 应用于:整型比较
-le
小于或等于 应用于:整型比较
-ge
大于或等于 应用于:整型比较
-a
双方都成立(and) 逻辑表达式 –a 逻辑表达式
-o
单方成立(or) 逻辑表达式 –o 逻辑表达式
-z
空字符串
-n
非空字符串

猜你喜欢

转载自blog.csdn.net/gosenkle/article/details/80291043
今日推荐