调用并将参数传递给其他脚本并存储回显

时间:2019-10-09 16:40:10

标签: bash

我正在调用另一个脚本并传递所需的参数,如下所示:

main.sh

1

menu.sh

bash menu.sh "${#map_list[@]}" "${map_list[@]}""${#index_list[@]}" "${index_list[@]}" $title

这会正确弹出菜单:

working menu

但是,我需要存储选择的选项并回显字符串

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

但是菜单没有显示任何选项,只是显示了指令字符串,似乎参数没有以某种方式正确传递

not working menu

1 个答案:

答案 0 :(得分:0)

menu.sh正在将“检查选项”提示打印到stderr,但是选项正在打印到stdout。 $(...)捕获标准输出,因此选项不可见。

编辑menu.sh,并用>&2将选项打印到stderr。