如何创建脚本来检查系统中存在的用户列表

发布于 2025-01-11 00:01:50 字数 371 浏览 0 评论 0 原文

我的文件中有一个用户列表(美国、比利时、印度、斯里兰卡、不丹) 我需要在每台计算机上运行一个脚本来检查上述用户是否存在,如果不存在,则创建这些用户, users on file 驻留在 /etc/users.txt

users.txt 的内容

America
Belgium
India
Srilanka
Bhutan

我尝试了此操作,但它没有检查我的文件列表中的用户。

#!/bin/sh
if grep -q "^$1:" /etc/users.txt ;then
    echo exists
else
    echo FALSE
fi

I have a list of users in a file ( America, Belgium, India, Srilanka, Bhutan)
I need to run a script on each machine to check the above users exist, if its does not, create those users,
users are on file resides in /etc/users.txt

Contents of users.txt

America
Belgium
India
Srilanka
Bhutan

I tried this, but it's not checking users on my list of files.

#!/bin/sh
if grep -q "^$1:" /etc/users.txt ;then
    echo exists
else
    echo FALSE
fi

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梨涡少年 2025-01-18 00:01:50
  1. 你没有调用users.txt,你只是调用了users

  2. 你的 grep 中有一堆不正确的正则表达式

  3. (可选)你应该在 grep 上使用 -i 来接受小写字母

    #!/bin/sh
    如果 grep -i -q "$1" /etc/users.txt ;那么
       存在回声
    别的
       回显错误
    菲
    
  1. you didnt call users.txt, you just called users

  2. you have a bunch of incorrect regex in your grep

  3. (optional) you should use -i on grep to accept lowercase letters

    #!/bin/sh
    if grep -i -q "$1" /etc/users.txt ;then
       echo exists
    else
       echo FALSE
    fi
    
荒芜了季节 2025-01-18 00:01:50

使用 while 循环从文件中读取:

while read -r line;
do
if id "$line" >/dev/null 2>&1; then
        echo "$line exists"
else
        echo "$line does not exist"
        sudo useradd "$line"
fi 
done < file

Use a while loop to read from file:

while read -r line;
do
if id "$line" >/dev/null 2>&1; then
        echo "$line exists"
else
        echo "$line does not exist"
        sudo useradd "$line"
fi 
done < file
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文