1 三种基本 if 语句
格式 1:if 条件 ; then 语句; fi
- #!/bin/bash
- a=5
- if [$a -gt 2];
- then echo $a
- fi
执行结果为 5
格式 2:if 条件; then 语句; else 语句; fi
- #!/bin/bash
- a=5
- if [ $a -gt 10 ];then
- echo $a
- else
- echo 0
- fi
执行结果为 0
格式 3:if ...; then ... ;elif ...; then ...; else ...; fi
- #!/bin/bash
- a=8
- if [ $a -lt 2 ];then
- echo $a
- elif [ $a -gt 10 ];then
- echo 10
- else
- echo 0
- fi
执行结果为 0
备注: if 逻辑判断, 自上而下满足条件执行相应操作后立刻结束. 不满足则继续往下判断, 直到满足条件为止.
逻辑判断表达式: if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ] 等 -gt (>); -lt(<); -ge(>=); -le(<=);-eq(==); -ne(!=) 注意到处都是空格
可以使用 && || 结合多个条件
- if [ $a -gt 5 ] && [ $a -lt 10 ]; then
- if [ $b -gt 5 ] || [ $b -lt 3 ]; then
二 if 判断文件, 目录属性
[ -f file ] 判断是否是普通文件, 且存在
[ -d file ] 判断是否是目录, 且存在
[ -e file ] 判断文件或目录是否存在
[ -r file ] 判断文件是否可读
[ -w file ] 判断文件是否可写
[ -x file ] 判断文件是否可执行
几种特殊的判断
if [ -z "$a" ] 这个表示当变量 a 的值为空时会怎么样
if [ -n "$a" ] 表示当变量 a 的值不为空
if grep -q '123' 1.txt; then 表示如果 1.txt 中含有'123'的行时会怎么样
if [ ! -e file ]; then 表示文件不存在时会怎么样
if (($a<1)); then ... 等同于 if [ $a -lt 1 ]; then...
[ ] 中不能使用 <,>,==,!=,>=,<= 这样的符号
三 shell 中的 case 判断
格式 case 变量名 in
- value1)
- command
- ;;
- value2)
- command
- ;;
- *)
- commond
- ;;
- esac
在 case 程序中, 可以在条件中使用 |, 表示或的意思, 比如 2|3) command ;;
举例
- #!/bin/bash
- read -p "Please input a number:" n
- case $n in
- 1)
- ls /root/
- ;;
- 2)
- fdisk -l
- ;;
- 3)
- ifconfig
- ;;
- esac
以上脚本运行后就可以输入 1 或 2 或 3 执行相应的命令.
来源: http://www.bubuko.com/infodetail-2632746.html