2016-04-06 148 views
0

我知道这个问题已经被问了很多,但我似乎无法得到它的工作,我有点钟,好吧。Bash脚本 - 从文本文件创建/删除用户

我试图与一个4选项菜单bash脚本: 1添加单个用户 2添加从列表 3删除单个用户 4从列表中删除

添加和删除用户单I”已经开始工作了,它只是从列表中继续击败我。

这也是迄今为止

#!/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 
    #for users in $user_list 
    #do 
     sudo useradd "$user_list" -m -p "$user_list" 
     #if [ $? -eq 0 ] 
      #then 
      # let created=$created+1 
     # fi 

    #done 
     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 

这是草率的地狱,但我知道我只需要它了从演示文稿分配演示,任何帮助表示赞赏。

谢谢。

+0

为什么你传递文件的说法,在“添加列表从”情况下,用户的密码?请参阅[Bash FAQ 001](http://mywiki.wooledge.org/BashFAQ/001)了解如何安全可靠地从文件(和其他来源)读取逐行数据。 –

+0

我建议使用['select'命令](https://www.gnu.org/software/bash/manual/bashref.html#index-select)来实现你的菜单。一个例子[这里](http://stackoverflow.com/a/33159099/7552) –

回答

0

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

例子:

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

得到它的工作,不完全是我想要的,但它会做。为帮助ivanzg干杯 这是我到底得了 '而IFS =:读取用户名密码全名组 做 须藤useradd的-m“$用户名” 做