Я работаю в скрипте bash для автоматизации некоторых задач. Это то, что я сделал до сих пор:
#!/usr/bin/env bash
PS3='Please enter your choice: '
options=("Create new group" "Add users to group" "Change directory ownership" "Change directory permissions" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Create new group")
read -e -p "Enter the group name: " -i "www-pub" groupname
groupadd groupname
echo "You have added a new group: " groupname
;;
"Add users to group")
## Here
;;
"Change directory ownership")
read -e -p "Enter the group name: " -i "www-pub" "Enter the directory: " -i "/var/www/html" groupname directory
chown -R root:groupname directory
echo "You have changed the ownership for: " directory " to root:" groupname
;;
"Change directory permissions")
## Actions for change directory permissions goes here
;;
"Quit")
break
;;
*) echo invalid option;;
esac
done
Теперь на шаге 2 Add users to group
Я хочу добавить более одного пользователя в данную группу. Так:
- Могу ли я использовать предыдущее имя группы,
groupname
на шаге 1, или я должен всегда запрашивать имяgroupname
? - Мне нужно запросить более одного пользователя, чтобы добавить его в группу, выполнив следующую команду:
usermod -a -G groupname username
, как мне запрашивать их до пустого значения?
Как пример:
Add users to group
Enter the group name: www-pub
Enter user: user1
user1 added to www-pub
Enter user: user2
user2 added to www-pub
Enter user: (none hit ENTER without values)
Return to the main menu
Может ли кто-нибудь помочь мне построить этот блок кода?