编写单行命令来解释 pdbedit 的条件输出

编写单行命令来解释 pdbedit 的条件输出

我想运行一行命令,告诉我是否设置了标志,以便在下次登录时更改用户密码。此命令将解释输出并返回 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 }; _'

相关内容