我想在运行命令之前检查三个条件:如果字符串(用户名)与正则表达式匹配,用户是否存在并且用户是否属于某个组:
facet()
以上代码仅部分工作。它会检查正则表达式和组,但即使用户不存在,它也会尝试更改密码。
答案 0 :(得分:0)
正确的解决方案是:
while true
do
echo -ne "username: "; read USER_NAME
if [[ "$USER_NAME" =~ ^[a-z_][a-z0-9_]*[$]?$ ]]
then
if [[ `getent group $USER_GROUP | grep -w -c "$USER_NAME"` -eq 1 ]]
then
break
else
echo "User not in the right group"
fi
else
echo "Invalid characters"
fi
done