我想运行一行命令,告诉我是否设置了标志,以便在下次登录时更改用户密码。此命令将解释输出并返回 true/false。
如果未设置 PWMC 标志,我会得到如下日期戳:
pdbedit -L -v <USER.NAME> | grep "Password must change:"
> Password must change: Wed, 30 Oct 2013 08:54:01 CDT
如果设置了 PWMC 标志,则命令返回以下内容:
pdbedit -L -v <USER.NAME> | grep "Password must change:"
> Password must change: 0
那么我该如何编写一个可以在一行上运行的命令,该命令将通过真/假语句告诉我为给定用户设置了 PWMC 标志?
谢谢!
答案1
将“返回真/假”的意思是回显字符串“true”或“false”,那么这一行应该可以做到这一点:
pdbedit -L -v "$USER_NAME" | if grep -Eq 'Password must change:\ +0'; then echo "true"; else echo "false"; fi
答案2
并作为别名...
别名 checkpwd='_(){ pdbedit -L -v $1 | 如果 grep -Eq "密码必须更改:\ +0"; 然后回显 "true"; 否则回显 "false"; fi }; _'