Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用Bash脚本从文本文件中创建/删除用户_Linux_Bash - Fatal编程技术网

Linux 使用Bash脚本从文本文件中创建/删除用户

Linux 使用Bash脚本从文本文件中创建/删除用户,linux,bash,Linux,Bash,我知道这个问题已经被问了很多次了,但我就是不能让它工作,我有点忙,好吧 我正在尝试制作一个带有4个选项菜单的bash脚本: 1添加单个用户 2从列表中添加 3删除单个用户 4从列表中删除 添加和删除单个用户我一直在努力,但这只是列表中不断击败我的一部分 这是我目前掌握的密码 #!/bin/bash choice=5 # Main display echo "Enter number to select an option" echo echo "1) Add Single User" echo

我知道这个问题已经被问了很多次了,但我就是不能让它工作,我有点忙,好吧

我正在尝试制作一个带有4个选项菜单的bash脚本: 1添加单个用户 2从列表中添加 3删除单个用户 4从列表中删除

添加和删除单个用户我一直在努力,但这只是列表中不断击败我的一部分

这是我目前掌握的密码

#!/bin/bash

choice=5
# Main display
echo "Enter number to select an option"
echo
echo "1) Add Single User"
echo "2) Add Users from list"
echo "3) Delete Single User"
echo "4) Delete users from list"
echo

while [ $choice -eq 5 ]; do

read choice

if [ $choice -eq 1 ] ; then    

    echo -e "Enter Username"
    read user_name
    echo -e "Enter Password"
    read user_passwd
    sudo useradd $user_name -m -p $user_passwd
    cat  /etc/passwd 

else                   

    if [ $choice -eq 2 ] ; then
        x=0
        created=0

        echo -e "Enter file name for users:"
        read user_list

        sudo useradd "$user_list" -m -p "$user_list"

        else

            if [ $choice -eq 3 ] ; then
            cat  /etc/passwd 
            echo
            echo -e "User to be deleted:"
            read del_user
            sudo userdel -r $del_user
            cat  /etc/passwd
            echo

                else

        if [ $choice -eq 4 ] ; then
        echo "Not yet finished"


        else
            echo "#####################"
            echo "# Stop being a noob #"
            echo "#####################"
            echo "1) Add Single User"
            echo "2) Add Users from list"
            echo "3) Delete Single User"
            echo "4) Delete users from list"
            echo
                        choice=5
                fi   
        fi
fi
fi
done
要从中获取用户的文件只是

User20
User19
User18
User17
User16
User15
User14
User13
User12
User11
User10
User9
User8
User7
User6
User5
User4
User3
User2
User1
我知道这太草率了,但我只需要它作为演示任务的演示,任何帮助都将不胜感激


谢谢。

读入文件名后,您必须遍历该文件,并为文件的每一行创建或删除用户

例如:

for user in `cat user_list`
do
    sudo useradd "$user" -m -p "$user"
done

读取-p“添加用户名:”用户名 读取-p“添加密码:”密码

useradd-m${USER\u NAME} echo${PASSWORD}|passwd--stdin${USER\u NAME}
退出0

为什么要将“从列表添加”案例中的文件参数作为用户密码传递?有关如何安全可靠地从文件(和其他源)逐行读取数据的信息,请参阅。我建议使用实现菜单。一个例子让它工作了,不是我想要的,但它会做的。为帮助干杯ivanzg这是我最后得到的
而IFS=:read username fullname password group do sudo useradd-m“$username”done
,如果其他人可能使用它。