#!/bin/bash while : do read -p ">>>" user [[ "$user" = "Q" ]] || [[ "$user" = "q" ]] && break [[ -z $user ]] && continue id $user &>/dev/null [[ $? -eq 0 ]] && cat /etc/passwd | awk -F: ‘{ print $1,$NF }‘|grep $user || echo "user not exist" done
脚本实现目标,判断用户是否存在
主要思路
while do语句实现循环
添加变量$user 退出机制 使用 “||”,“&&”分别为与运算和或运算,进行循环退出。
[[ -z $user]] 判断$user是否为空值 continue 跳入下个循环
$? 上个命令的退出状态,或函数的返回值
判断是否为空值 打印配置文件所在行 ($NF为最后一个域)
顺便回忆下shell脚本中比较大小的参数
-eq //等于
-ne //不等于
-gt //大于
-lt //小于
-ge //大于等于
-le //小于等于