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