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 流程控制的主要内容,如果未能解决你的问题,请参考以下文章

Shell 流程控制

shell--8Shell 流程控制

Shell流程控制

Shell 流程控制

Shell 学习--流程控制

shell流程控制