私は現在、この特定の bash スクリプトを実行するときに、特定の人にメニューを表示するスクリプトを作成しようとしています。メニューでは、3 つのオプションを使用できます (1. ユーザーの追加、2. ユーザーの削除、3. 終了)。選択したユーザー追加オプションに関連して、ユーザーが新しいユーザーの詳細を手動で入力したり、テキスト ファイルを介して複数のユーザーを追加したりできるようにする 2 つのオプションがあるはずです。上記のメニュー/オプションを作成できましたが、手動でユーザーを追加するためのタスクのスクリプト/本体を作成できず、txt ファイルを介して多くのユーザーを作成したり、ユーザーを削除したりできませんでした。
私のコードで何か助けていただければ幸いです! どうもありがとう!
これが今の私のスクリプトです:
#!/bin/bash
clear
echo "########## MENU ############\n"
options=("add_user" "delete_user" "exit")
select opt in "${options[@]}"
do
case $opt in
"add_user")
clear
while [ 1 ]
do
clear
echo "1. Add user manually"
echo "2. Add user via TXT file"
read -p "Enter your choice" ch
case $ch in
1)
read -p "Enter user name : " useradd
read -p "Enter user password:" passwd
echo -e "Successfully added the user"
;;
2)
if [ $(id -u) -eq 0 ]; then
for row in `more $1`
do
username=${row%:*}
password=${row#*:}
egrep "^$username" /etc/passwd >/dev/null
if [ $? -eq 0 ]; then
echo "$username exists!"
exit 1
else
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
useradd -m -p $pass $username
[ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a
user!"
fi
done
else
echo "Only root may add a user to the system"
exit 2
fi
esac
done
;;
"delete_user")
read -p "Enter a User name to delete "UNAME
passwd
deluser $UNAME
echo "User $UNAME has been deleted"
;;
"exit")
break
;;
esac
done