2016-04-06 146 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「$用戶名」 做