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
)前面也可以使用|放置多个预设值,例如:
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
零散的笔记:
1、使用随机数RANDOM%num获得0-num-1的随机值。
2、使用&将进程放到后台,可以实现异步调用,使用jobs查看。
3、将有输出信息的进程放到后台并且没有将输出信息重定向到/dev/null中的话,会出现内容未打印完而脚本已运行结束的情况,内容会覆盖bash输入位置,导致光标不在bash位置上,只要等内容打印完,按回车就可以,因为打印的内容不会因为回车被执行。
4、在脚本最后输入wait,确保等所有进程结束,脚本才会返回
for i in {1…254}
do
…
done
wait
5、如果脚本中有死循环后台进程,需要使用kill $!将脚本中的后台进程杀了,这个命令是杀死“最后一个后台进程”,如果有脚本有多个后台进程需要多调用此命令。