SHELL中的while循环
来源:互联网 发布:福建工程学院软件学院 编辑:程序博客网 时间:2024/05/17 07:49
流控制:while循环
在编程语言中,循环非常常见。在bash中,bash也有类似的关键字,构建这样的循环:
#!/bin/bash# 显示一系列数字count=1while [ $count -le 6 ]; do echo $count count=$((count + 1))doneecho "finished"
执行脚本:./while-count.sh,结果如下:
[fbap:/home/fbap/usertmp]>./while-count.sh123456finished
就如同if指令一样,while会判断一系列指令的退出状态。只要退出状态为0,它就执行循环体内的命令。在上述循环中,我们创建了count变量并进行了初始化,while命令会判断test命令的退出状态,只要为0,那门循环体内的指令就会执行(打印count变量,并且count加1)。
下面有一个使用while循环更加高级的一个例子:
#!/bin/bash## 一个菜单驱动的展示系统信息的脚本## 展示结果的延迟时间(单位/秒)DELAY=3while [[ "$REPLY" != "0" ]]; do clear cat <<EOF----------------------------请选择: 1.显示系统信息 2.显示磁盘使用情况 3.显示用户空间使用情况 0.退出----------------------------EOF read -p "请输入你的选择[0-3]:" if [[ $REPLY =~ ^[0-3]$ ]];then # 显示系统使用情况 if [[ "$REPLY" = "1" ]];then echo echo "主机名:${HOSTNAME}" uptime sleep $DELAY fi # 显示磁盘使用情况 if [[ "$REPLY" = "2" ]];then df -h sleep $DELAY fi # 显示用户空间使用情况 if [[ "$REPLY" = "3" ]];then # 判定有效用户是否为root if [[ $(id -u) -eq 0 ]];then echo echo "(所有用户)用户空间使用情况:" du -sh /home/* else echo echo "(${USER})用户空间使用情况:" du -sh $HOME fi sleep $DELAY fi else echo "非法输入" sleep $DELAY fidoneecho "脚本退出"
执行脚本:./read-menu.sh,输出:
----------------------------请选择: 1.显示系统信息 2.显示磁盘使用情况 3.显示用户空间使用情况 0.退出----------------------------请输入你的选择[0-3]:1主机名:localhost.localdomain 17:28:28 up 333 days, 44 min, 10 users, load average: 1.04, 1.06, 1.17
在上面的例子中,将菜单封装在while循环内,程序就可以在用户每次选择后重复展示菜单项。只要REPLY值不为0,重复循环,展示菜单项,给用户又一次的选择机会。而在每次动作结束时,系统执行sleep命令使程序暂停几秒,让用户看到选择执行的结果,随后清空屏幕显示并再次显示菜单。
阅读全文
0 0
- Shell中的while循环
- Shell中的while循环
- SHELL中的while循环
- shell 中的for循环和while循环
- Shell中的循环语句for、while、until
- shell 中的for循环while循环和case语句
- shell while循环监控
- shell脚本----while循环
- shell脚本--while循环
- shell while循环
- shell while循环问题
- 十七、Shell while循环
- Shell while循环
- Shell while循环
- Shell while循环
- Shell while循环
- shell while循环
- shell while循环
- Partial Sum (2017湘潭)
- IOS越狱动态库相关-2017
- NoSuchBeanDefinitionException: No matching bean of type [com.piesat.web.service.SelectItemsService]
- 链接:蓝牙:蓝牙低功耗
- 高精度计算N!
- SHELL中的while循环
- intellij live template整理
- Macho文件浏览器---MachOView
- Cxf拦截器
- ios 实现android 中的DrawerLayout菜单
- Python标准模块——__future__
- 欢迎使用CSDN-markdown编辑器
- 反向传播算法入门资源索引
- CQOI珠宝