shell 流程控制
Posted 喝茶等下班
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 流程控制相关的知识,希望对你有一定的参考价值。
1.
要想使用while循环逐行读取a.txt文件,有三种方式
#!/bin/bash
cat /root/a.txt|while read LINE;do
echo $LINE
done
#!/bin/bash
while read LINE; do
echo $LINE
done < /root/a.txt
#!/bin/bash
exec < /root/a.txt #读取文件作为标准输入
while read LINE; do
echo $LINE
done
2.
case的模式也支持正则,匹配哪个模式就执行哪个
#!/bin/bash
case $1 in
[0-9])
echo "match number"
;;
[a-z])
echo "match letter"
;;
-h|--help)
echo "help"
;;
*)
echo "Input error!"
exit
esac
3.
select表达式是bash的一种扩展应用,擅长于交互式场合。用户可以从一组不同的值中进行选择:
select var in ... ; do
break;
done
[root@study ~]# vim select.sh
#!/bin/bash
select mysql_version in 5.1 5.6;do
echo $mysql_version
done
[root@study ~]# sh select.sh
1) 5.1
2) 5.6
#? 1
5.1
#? 2
5.6
#? 1
5.1
#?
用户输入编号会直接赋值给变量mysql_version。作为菜单用的话,循环第二次后就不再显示菜单了,并不能满足需求。
在外面加个死循环,每次执行一次select就break一次,这样就能每次显示菜单了
#!/bin/bash
while true ; do
select mysql_version in 5.1 5.6;do
echo $mysql_version
break
done
done
[root@study ~]# sh select.sh
1) 5.1
2) 5.6
#? 1
5.1
1) 5.1
2) 5.6
#? 3
1) 5.1
2) 5.6
#? 2
5.6
1) 5.1
2) 5.6
#?
以上是关于shell 流程控制的主要内容,如果未能解决你的问题,请参考以下文章