Shell脚本,case语句多分支判断,检查判断变量的取值,使用wait等待脚本进程,使用kill杀脚本最后一个进程

Shell脚本,case语句多分支判断,检查判断变量的取值,使用wait等待脚本进程,使用kill杀脚本最后一个进程

O、
1、效果类似于多分支的语句
2、如果与预设的值相等,则执行相应的动作
3、命令序列最后必须以双分号结尾
4、最后的默认命令序列不是必须加双分号的,可有可无,效果一样
5、像极了编程语言里面的switch case语句。

一、case语法:
case 变量 in
模式1)
命令序列1;;
模式2)
命令序列2;;

*)
默认命令序列
esac

例如:
read -p “INPUT A or B :” Input
case $Input in
A)
echo A;;
B)
echo B;;
*)
echo “nothing”
esac
Shell脚本,case语句多分支判断,检查判断变量的取值,使用wait等待脚本进程,使用kill杀脚本最后一个进程

)前面也可以使用|放置多个预设值,例如:
read -p “INPUT y or n :” Input
case $Input in
y|Y|yes|YES)
echo “OK”;;
n|N|no|NO)
echo “NO”;;
*)
echo “error”;;
esac
Shell脚本,case语句多分支判断,检查判断变量的取值,使用wait等待脚本进程,使用kill杀脚本最后一个进程

零散的笔记:
1、使用随机数RANDOM%num获得0-num-1的随机值。

Shell脚本,case语句多分支判断,检查判断变量的取值,使用wait等待脚本进程,使用kill杀脚本最后一个进程

2、使用&将进程放到后台,可以实现异步调用,使用jobs查看。
Shell脚本,case语句多分支判断,检查判断变量的取值,使用wait等待脚本进程,使用kill杀脚本最后一个进程

3、将有输出信息的进程放到后台并且没有将输出信息重定向到/dev/null中的话,会出现内容未打印完而脚本已运行结束的情况,内容会覆盖bash输入位置,导致光标不在bash位置上,只要等内容打印完,按回车就可以,因为打印的内容不会因为回车被执行。
Shell脚本,case语句多分支判断,检查判断变量的取值,使用wait等待脚本进程,使用kill杀脚本最后一个进程

4、在脚本最后输入wait,确保等所有进程结束,脚本才会返回
for i in {1…254}
do

done
wait

5、如果脚本中有死循环后台进程,需要使用kill $!将脚本中的后台进程杀了,这个命令是杀死“最后一个后台进程”,如果有脚本有多个后台进程需要多调用此命令。

上一篇:hive小案例-综合开窗函数、判断语句、日期转换、时间均值计算


下一篇:实验:Keepalived + Nginx + Tomcat 搭建高可用主从模式Web服务器