Linux 技术手札

Shell Script 检查系统帐号是否存在

在 Shell Script 想检查系统帐号是否存在, 可以用 grep 搜索 /etc/passwd 的内容达成, 指令是这样:

以上指令会检查 /etc/passwd 档案内, 是否有 “useraccount” 这个帐号存在, 其中 “^” 表示指定前面没有任何字符, 而 “:” 则是在 /etc/passwd 用作分开每个字段的分隔字符。

上面指令执行后, 如果帐号不存在, 不会回传任何内容, 如果帐号存在, 则会回传在 /etc/passwd 的相关纪录, 例如:

useraccount:x:1001:1001::/home/useraccount:/bin/bash

要将上面的功能放到 Shell Script, 可以这样写:

第 3 行用了上面的 grep 指令, “>/dev/null 2>&1;” 是为了即使有匹配的行也不印出。第 5 行看到 $? 变量, 这个变量会储存上一个执行的指令的 exit 0, grep 找到匹配纪录的 exit code 是 0, 所以只要检查 $? 是否 0, 便知道帐号是否存在。

Exit mobile version