在下面的“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