如何解决使用带有动态内容的对话单选列表创建 bash 脚本
我想在 bash 脚本中使用 dialog
创建一个radiolist。 radiolist 项必须使用数组动态设置。现在我正在创建两个变量:一个用于保存命令和一些选项 (${cmd}
),另一个用于保存项目 (${options}
)。
我可以正确地回显完整的命令并将此输出粘贴到命令行工作正常。但是通过 $(...)
在脚本中运行相同的命令失败并报告 dlg: Error: Expected a number for token 3 of --radiolist.
我该如何解决这个问题。
MWE:
#!/bin/bash
attr=(beautiful heroic wise mighty)
planets=(Venus Mars Jupiter Neptune)
topic="planet"
title="Select a '${topic}':"
options=
selected=OFF
cmd="dialog --keep-tite --radiolist \"${title}\" 14 46 10"
for (( i=0; i<${#planets[*]}; i++ )); do
let idx=${i}+1
[[ "${i}" == 0 ]] && selected=ON || selected=OFF
options+=" ${idx} \"${attr[i]} ${planets[i]}\" ${selected}"
done
echo ${cmd} ${options}
exec 3>&1
dlg=$(${cmd} ${options} 2>&1 1>&3)
exitCode=$?
exec 3>&-
echo exitcode: ${exitCode}
echo dlg: ${dlg}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。