while 循环
时间:2019-04-16 23:59:05 来源:igfitidea点击:
语法
while [ condition ] do command1 command2 .. .... commandN done
当条件condition为true时,将执行命令command1到commandN。
一行行读取文本文件的语法:
while IFS= read -r line do command1 on $line command2 on $line .. .... commandN done < "/path/to/filename"
示例
检测变量值进行循环
#!/bin/bash # set n to 1 n=1 # 一直循环,直到$n等于5 while [ $n -le 5 ] do echo "Welcome $n times." n=$(( n+1 )) # $n 加一 done
还可以使用**((表达式))**语法来替代条件语句 [condition]
#!/bin/bash # set n to 1 n=1 while (( $n <= 5 )) do echo "Welcome $n times." n=$(( n+1 )) # $n 加一 done
bash shell一行行读取文本文件示例
#!/bin/bash file=/etc/resolv.conf while IFS= read -r line do # echo line is stored in $line echo $line done < "$file"
shell读取文件字段示例
#!/bin/bash file=/etc/resolv.conf # 每行的文本,根据空格分隔,存放到f1和f2变量中。这种方法用于读取/etc/passwd 和 /etc/hosts等文件非常实用 while IFS=' ' read -r f1 f2 do echo "field # 1 : $f1 ==> field #2 : $f2" done < "$file"
while死循环
在while中设置一个无限循环可以使用:
true命令—什么都不做,成功(总是返回退出码0)
false命令—什么都不做,不成功(总是返回退出码1)
:命令-无效;该命令什么也不做(总是返回退出码0)
#!/bin/bash while true do echo "这里可以执行一些命令;按[CTRL+C]停止!" done
#!/bin/bash while false do echo "这里可以执行一些命令;按[CTRL+C]停止!" done
#!/bin/bash # 设置一个无限while循环的推荐语法 while : do echo "这里可以执行一些命令;按[CTRL+C]停止!" done
一个使用while循环的菜单驱动程序
菜单驱动程序通常会继续运行,直到用户选择退出主菜单
下面的菜单驱动程序通常会继续,直到用户选择退出按4选项。
case语句用于匹配$choice变量的值,它将根据用户的选择采取适当的操作。
#!/bin/bash # 设置无限循环 while : do clear # 显示菜单 echo "服务器名称 - $(hostname)" echo "-------------------------------" echo " 主菜单 " echo "-------------------------------" echo "1. 显示日期和实际." echo "2. 显示用户的操作." echo "3. 显示网络连接." echo "4. 退出" # 获取用户输入 read -p "请输入你的选择 [ 1 -4 ] " choice # 使用 case..in..esac 进行判断 case $choice in 1) echo "今天是 $(date)" read -p "按[回车]键继续..." readEnterKey ;; 2) w read -p "按[回车]键继续..." readEnterKey ;; 3) netstat -nat read -p "按[回车]键继续..." readEnterKey ;; 4) echo "再见!" exit 0 ;; *) echo "Error: 无效的选择..." read -p "按[回车]键继续..." readEnterKey ;; esac done