while read 函数,特殊用法 while循环的特殊用法,遍历文件或文本中的每一行 格式: while read line;do 循环体 done < /路径/文件

##依次读取文件的每一行,赋值给line

eg: while read line;do if [[ "$line" =~ /sbin/nologin$ ]];then echo $line | awk -F ":" '{print $1,$3}' fi done < /etc/passwd

读取passwd文件的每行用户信息,取出非登陆用户和UID

select 配合 case 制作循环菜单 ##需要注意PS3里序号和MENU里对应的值编号一致 ##REPLY是系统内置变量,用户输入被保存至此 ##select是循环,需要break退出循环:

PS3="选择菜单(1-3):" select MENU in 启动 关闭 重启;do case $REPLY in 1) 启动 ;; 2) 关闭 ;; 3) 重启 ;; *) esac done

或者将MENU单独定义: PS3="请选在编号(1-6):" MENU=" 禁用selinux 关闭防火墙 修改提示符 修改网卡名 以上全实现 退出 "

echo $MENU|tr ' ' "\n" select M in MENU ;do case $REPLY in 1) echo "已禁用selinux" ;; 2) echo "已关闭防火墙" ;; 3)
echo "已修改提示符" ;; 4) echo "已修改网卡名" ;; 5) echo "以上全实现" ;; 6) break ;; *) echo "error" esac done