【shell 流程控制】观书散遗帙,探古穷至妙。这篇文章主要讲述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 正则表达式
- 来自国外网站的一堆有用或有趣的小工具,也许对你有所帮助
- 更换网络后虚拟机无法连接网络
- 2-24 源码编译搭建LAMP环境
- MySQL数据库初战