我正在调用另一个脚本并传递所需的参数,如下所示:
main.sh
1
menu.sh
bash menu.sh "${#map_list[@]}" "${map_list[@]}""${#index_list[@]}" "${index_list[@]}" $title
这会正确弹出菜单:
但是,我需要存储选择的选项并回显字符串
menu.sh
options=( "${@:2:$1}" ); shift "$(( $1 + 1 ))"
results=( "${@:2:$1}" ); shift "$(( $1 + 1 ))"
declare -p options results
title=$1
### more code beneath to pop a multi option menu ... ###
并尝试过赞这个:
main.sh
echo $chosen
但是菜单没有显示任何选项,只是显示了指令字符串,似乎参数没有以某种方式正确传递
答案 0 :(得分:0)
menu.sh
正在将“检查选项”提示打印到stderr,但是选项正在打印到stdout。 $(...)
捕获标准输出,因此选项不可见。
编辑menu.sh
,并用>&2
将选项打印到stderr。