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

