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