开发者学堂课程【Shell 编程入门到精通:shell 流程控制语句及 break-continue 使用方法】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/453/detail/5599
shell 流程控制语句及 break-continue 使用方法
内容介绍
一、嵌套使用方法总结
二、shell 流程控制语句及 break-continue 使用方法
一、嵌套使用方法总结
1、if 流程控制语句适用于判断条件比较简单,一次性判断的,比如到几点了就执行什么,大于多少就执行什么。
2、case 流控制语句,适用于多分支,比如打开 word 按下 alt 键,顶部右上角会出现功能区对应的快捷键,如alt+F是打开文件菜单,alt+H打开开始菜单,alt+M就是打开邮件菜单,通常通过快捷键来判断具体某个参数选项,具体获得后判断对应的值,可看到格式:
case 变量 in
字符串1)命令列表1
;;
…
字符串n)命令列表n
3、for 流控制语句很少用,for 变量加名字表,跟其他语言的 for 不一样,其他原因的 for 类似于while语句,所以在 shell 中 while do 加条件判断语句用得更多。
for变量in名字表
do
命令列表
done
while条件
do
命令
done.
二、shell 流程控制语句及 break-continue 使用方法
跳出循环: break 和 continue
Break :跳出整个循环
Continue :跳过本次循环,进行下次循环,比如一个while语句需要执行十次,第一次执行时遇到Continue,就跳出不执行接下面的命令,进行第二次循环。
跳出循环案例:打印一个功能菜单,实现输错后,可以重新输入,只有输入Q,才可以退出菜单。
1、Break方法
[root@xuegod63 test]#
chmod
+
x
break-cont.sh
没有用的代码,可以ctrl+v下移光标删除,结尾加上;;便于显示,如下:
#
! /bin/sh
while true
do
echo
“
*******************************
”
echo "Please select your operation:"
echo
“
1 Copy"
echo
“
2 Delete
“
echo
“
3 Backup"
echo “4 Quit"
echo
“
******************************* "
read
op
case $op in
C)
echo "your selection is Copy"
;;
D)
echo "your selection is Delete"
;
;
B
)
echo "your selection is Backup"
;
;
Q
)
e
cho “Exit…”
b
reak
;
;
*)
echo "invalide selection, please try again
continue
;;
esac
done
[root@xuegod63 test]#
.
/break-cont.sh
Please select your ope ration:
1 Copy
2 Delete
3 Backup
4 Quit
******************************
此时输入1进行拷贝,会告诉你这是无效的选项,请重新输入,如,
1
invalide
selection,please
try
again
如果再次输入C,会显示所操作为拷贝,如,
C
your selection is Copy
输入D的时候,显示所操作为删除,如,
D
your selection is D
elete
如果备份则输入B,如,
B
your selection is B
ackup
随便输入任何命令都不会退出,会一直执行,只有按下Q才会退出******************************
Q
Exit
…
[root@xuegod63 test]#
break方法代码中前期输出菜单获得op,while true为条件永远为真,要退出只有满足break条件才退出,如果想输入一次就退出,只需要case $op判断输入选项,比如输入C执行或者随便输入字符执行后程序会跳到esac,可继续选择菜单,而不是退出,退出只有在输入Q的时候,触发break作为判断退出,输出Exit…
2、Continue 方法
continue是退出本次循环,比如在case分支C后添加continue,那在菜单输入C时,就不执行continue后面的语句,直接本次循环退出转到菜单重新开始执行,如,
[root@xuegod63 test]#
vim
break
-
cont
.
sh
…
read
op
case $op in
C)
c
ontinue
echo "your selection is Copy"
;;
…
[root@xuegod63 test]#
.
/break=cont.sh
******************************
Please select your operation:
1 Copy
2 Delete
3 Backup
4 Quit
******************************
输入D时,会显示你选择的是Delete,如,
D
your
selection
is
D
elete
******************************
Please select your operation:
1 Copy
2 Delete
3 Backup
4 Quit
******************************
再次输入C的时候,显示什么也没输出,遇到continue就跳出,不会再执行后面的,如,
C
******************************
Please select your operation:
1 Copy
2 Delete
3 Backup
4 Quit
******************************