在下面的「hostmenu」函數中,我希望使用連接字符串$ site和$ system來標識哪個數組將用於構建下一個菜單。 「sitemenu」和「sysmenu」函數設置了設置$ sitesystem所需的兩個必需變量。所有數組都是在任何函數之外定義的。我遇到的問題是,當選擇使用它時,「$ sitesystem」會變空。 「$ siteystem」的回顯顯示位置參數「site」「system」(例如:「siteasysb」),而不是數組「$ siteasysb」中定義的字符串。我怎樣才能讓select成功使用「$ sitesystem」變量?BASH:連接的字符串變量不能被select內部函數使用
#!/bin/bash
main()
{
sitemenu
sysmenu
hostmenu
}
## functions omitted which set $site and $system ##
hostmenu()
{
PS3="Please choose a $site $system device to connect to.."
clear
sitesystem=("$site""$system")
echo $sitesystem
select opt in "${sitesystem[@]}"
do
case $opt in
## Omitted selected host section ##
;;
"Return to previous system menu")
sysmenu
;;
"Return to site menu")
sitemenu
;;
"Quit")
break
;;
*) echo invalid option;;
esac
done
}
siteoptions=("sitea" "siteb" "Quit")
sysoptions=("sysa" "sysb" "Return to site menu" "Quit")
siteasysa=("a" "b" "Return to previous system menu" "Return to site menu" "Quit")
siteasysb=("a" "b" "Return to previous system menu" "Return to site menu" "Quit")
`main "[email protected]"
要使用變量作爲另一個變量的名稱,請使用'$ {!sitesystem}'。 – Barmar