case分支选择结构:
case 词 in [模式 [| 模式]...) 命令 ;;]... esac
case 变量引用 in
模式1)
分支1
;;
模式2)
分支2
;;
...
*)
默认分支
;;
esac
模式(PATTERN):
1.普通的文本字符
2.globbing风格的通配符:
*:任意长度任意字符
?:任意的单个字符
[]:范围内的任意单个字符
[^]:范围外的任意单个字符
3.|:或
if的多分支结构和case的分支结构之间的区别:
相同点:
1.都是条件为真,执行对应分支的语句;条件为假,就不执行;
2.都可以设置默认分支语句,即:所有条件都不匹配的时候,所执行的语句;
不同点:
1.if是根据命令的执行状态返回值来判断正确与否;case是根据变量的值的取值内容是否匹配模式来判断正确与否;
2.case的每个分支都必须使用';;'结束;
while
while 命令; do 命令; done
while CONDITION ; do
循环体
done
进入循环条件:CONDITION一直为真;
退出循环条件:CONDITION为假;
until
until 命令; do 命令; done
until CONDITION ; do
循环体
done
进入循环条件:CONDITION一直为假;
退出循环条件:CONDITION为真;
while CONDITION ; do CMD ; done
相当于
until ! CONDITION ; do CMD ; done
注意:对于while和until两个循环结构来讲,如果要实施变量增量操作,必须手动给出;
循环控制语句:
continue
break
continue:
continue [n]
提前结束第n层的本次循环,直接进入下一轮条件判断,若符合循环进入条件,则开启下一轮循环;
break:
break [n]
提前技术第n层循环;不再继续后续循环;
无限循环用法:
while true ; do
循环体
done
until false ; do
循环体
done
在此类的循环结构中,必须适当的使用continue和break,以保证循环不会一直持续下去;
能够实现遍历功能的while循环和until循环;
while read LINES ; do
循环体
done < /PATH/FROM/SOMEFILE
until ! read LINES ; do
循环体
done < /PATH/FROM/SOMEFILE
select
select循环主要用于创建一个菜单式列表,供用户进行选择;
列表是按照数字顺序排列的,我们只要选择数字即可;
一般来讲,select与case一起使用;
select是一个无限循环结构,因此,必须在循环体中使用break命令以退出循环,或者可以使用exit命令直接终止脚本运行;
select NAME [in 词语 ... ;] do 命令; done
select NAME [in LIST] ; do
命令
done