如何根據檔案夾中的目錄在 bash 腳本中填寫 case 陳述句。所以我在這個檔案夾中有以下檔案夾 /opt/servers/ 我有以下目錄:
server1
server2
server3
這些目錄中的每一個都等于 Websphere Liberty 中的一個服務器名稱。
我怎樣才能把這些放在案例陳述中?
我也想在多臺服務器上使用這個腳本,而且serversnames不一樣,所以我不想把服務器的名字硬編碼在腳本里。因為如果要添加或洗掉額外的服務器,我需要再次編輯腳本并將該服務器名放在那里。
如果我使用以下內容,我將獲得所有目錄:
find /opt/servers/ -type d -name *server* | sort | awk -F'/' '{print $(NF-0)}'
但是,如果我將 find 放入一個變數并再次回顯它,它會在一行上列印所有服務器:
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.
uj5u.com熱心網友回復:
您可以使用服務器目錄路徑填充 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...
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/422226.html
標籤:
上一篇:Bash沒有終止python腳本
