我正在编写一个脚本,可以通过参数 ($1) 添加、删除和更改用户的密码。我想检查该用户是否存在,以便更好地控制它。我知道这个问题已经被问了很多次,之前我也在谷歌上搜索过,但事实上,这些解决方案对我并没有起作用,我不知道我的错误在哪里,非常抱歉。
这是我的代码:
#!/bin/bash
existe=$(grep -c '^$1:' /etc/passwd)
if [ $existe -eq 0 ]; then
echo "The user $1 exists"
echo ""
else
echo "The user $1 does not exist"
echo ""
fi
我尝试了">/dev/null"和"getent"等方法,但是无论我做什么,用户始终存在。我粘贴在这里的代码是我最后尝试的代码。你能帮我吗?^^ 先谢谢你。
$1
而不是^$1:
吗? - User123:
可以匹配用户名的结尾,因为 passwd 文件格式就是这样的。 - georgexsh$1
可以是任何东西,比如用户名/用户ID等。如果只传递了用户名,那就没问题 :) - User123\b$1\b
来匹配整个字符串,但我认为这不是一个好主意,id
更合适。 - georgexsh