我是 Linux、shell 和脚本的新手。我遇到了一个问题,无论我如何尝试谷歌,我都找不到答案。
我有一个脚本,它为一个名为“whiptail”的程序创建菜单项,这似乎是在 Debian 上为 Raspberry Pi 显示对话框和菜单项的标准方式。列表项是根据在 Linux 机器上的各种文件中找到的各种数据创建的。我的代码开始
#!/bin/sh
该列表是在脚本顶部的 #!/bin/sh 环境中创建的。
但是,为了举例,让我们将列表定义为:
LIST="\"Tag 1\" \"Item 1\" \\ \n\"Tag 2\" \"Item 2\" \\ \n"
有效的代码是:
while true; do
TESTRESULT=$(whiptail --menu "Test" 20 80 12 --cancel-button Cancel --ok-button Select \
"Tag 1" "Item 1" \
"Tag 2" "Item 2" \
3>&1 1>&2 2>&3)
RET=$?
if [ $RET -eq 1 ]; then
echo "Cancel"
exit 0
elif [ $RET -eq 0 ]; then
echo "Do something with the selection stored in TESTRESULT"
exit 0
else
exit 1
fi
不知道怎么换
"Tag 1" "Item 1" \
"Tag 2" "Item 2" \
与“LIST”变量中的项目。我有一种感觉,答案在于“eval”,但我也遇到了将其作为解决方案工作的问题。
我也在尝试将 LIST 创建为数组,但我认为这也使事情变得复杂。
任何人有任何想法?