如何根据 bash 的基金结果填写案例陈述?
How to fill a case statement baised on the outcome of a find with bash?
如何根据文件夹中的目录在 bash 脚本中填写 case 语句。
所以我在这个文件夹中有以下文件夹 /opt/servers/ 我有以下目录:
服务器 1
服务器 2
服务器 3
这些目录中的每一个都等于 Websphere Liberty 中的一个服务器名。
如何将它们放入案例陈述中?
我也想在多台服务器上使用这个脚本,服务器名称不一样,所以我不想把服务器的名称硬编码在脚本中。因为如果要添加或删除额外的服务器,我需要再次编辑脚本并将该服务器名放在那里。
如果我使用以下内容,我将获得所有目录:
find /opt/servers/ -type d -name *server* | sort | awk -F'/' '{print $(NF-0)}'
但是如果我把查找结果放在一个变量中并再次回显它,它会在一行上打印所有服务器:
SERVERS=`find /opt/wlp/ -type d -name *server*| sort | awk -F'/' '{print $(NF-0)}'`
echo $SERVERS
server1 server2 server3
我该如何解决这个问题?
The goal is, that when a server is selected I get a new menu, where I can stop or start the server.
所以脚本会做类似的事情:
Hello please select one of the servers below:
1) server1
2) server2
3) server3
You have selected: server1
What do you want to do with this server?
1) stop
2) start
You have selected: stop
Are you sure?
1) Yes
2) No
You have selected: Yes
server1 will be stopped.
您可以使用服务器目录路径填充 bash 数组,然后使用它来实现您的逻辑:
#!/bin/bash
servers=( /opt/servers/*server* )
echo "Hello please select one of the servers below:"
select server in "${servers[@]##*/}"
do
[[ $server ]] || continue
echo "You have selected: $server"
break
done
echo "What do you want to do with this server?"
select action in stop start
do
[[ $action ]] || continue
echo "You have selected: $action"
break
done
# etc...
如何根据文件夹中的目录在 bash 脚本中填写 case 语句。
所以我在这个文件夹中有以下文件夹 /opt/servers/ 我有以下目录:
服务器 1
服务器 2
服务器 3
这些目录中的每一个都等于 Websphere Liberty 中的一个服务器名。
如何将它们放入案例陈述中?
我也想在多台服务器上使用这个脚本,服务器名称不一样,所以我不想把服务器的名称硬编码在脚本中。因为如果要添加或删除额外的服务器,我需要再次编辑脚本并将该服务器名放在那里。
如果我使用以下内容,我将获得所有目录:
find /opt/servers/ -type d -name *server* | sort | awk -F'/' '{print $(NF-0)}'
但是如果我把查找结果放在一个变量中并再次回显它,它会在一行上打印所有服务器:
SERVERS=`find /opt/wlp/ -type d -name *server*| sort | awk -F'/' '{print $(NF-0)}'`
echo $SERVERS
server1 server2 server3
我该如何解决这个问题? The goal is, that when a server is selected I get a new menu, where I can stop or start the server. 所以脚本会做类似的事情:
Hello please select one of the servers below:
1) server1
2) server2
3) server3
You have selected: server1
What do you want to do with this server?
1) stop
2) start
You have selected: stop
Are you sure?
1) Yes
2) No
You have selected: Yes
server1 will be stopped.
您可以使用服务器目录路径填充 bash 数组,然后使用它来实现您的逻辑:
#!/bin/bash
servers=( /opt/servers/*server* )
echo "Hello please select one of the servers below:"
select server in "${servers[@]##*/}"
do
[[ $server ]] || continue
echo "You have selected: $server"
break
done
echo "What do you want to do with this server?"
select action in stop start
do
[[ $action ]] || continue
echo "You have selected: $action"
break
done
# etc...