Rey*_*rPM 2 linux centos script bash
我正在使用 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
Run Code Online (Sandbox Code Playgroud)
现在,在第 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
Run Code Online (Sandbox Code Playgroud)
任何人都可以给我一些帮助来构建这段代码吗?
这是一种方法:
"Add users to group")
read -e -p "Enter the group name: " -i "www-pub" groupname
loop=true # "true" is a command
while $loop; do # the "$loop" command is executed
read -p "enter username: " username
if [[ -z $username ]]; then
loop=false # this command returns a fail status, and
# will break the while loop
else
# add user to group
fi
done
;;
Run Code Online (Sandbox Code Playgroud)
更简洁的方式:
while true; do
read -p "enter username: " username
[[ -z $username ]] && break
# add user
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2099 次 |
| 最近记录: |