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
)前面也可以使用|放置多个预设值,例如: 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 $!将脚本中的后台进程杀了,这个命令是杀死“最后一个后台进程”,如果有脚本有多个后台进程需要多调用此命令。
|