来自 mysql 的对话框清单

来自 mysql 的对话框清单

我在 mysql 中有一个待办事项列表。我想使用 使其更具交互性dialog

#!/bin/bash

mapfile -t todo < <(mysql -uroot -hmy_host -p$my_pass -Dmy_db -BNe "select task from todo where complete=0;")

list=$(printf "'%s' off " "${todo[@]}")

如果echo "$list"我得到想要的结果:

'test' off 'test two' off 'another test job' off

如果我手动插入它,它会按预期工作。

但是当我从变量运行对话框时,空格会'test two'抛出'another test job'我的参数,我得到:

dialog --clear --no-items --checklist "todo list" 20 65 15 $(echo "$list")

Expected 2 arguments, found extra 1.

如何从 bash 脚本获取正确填充对话框复选框的值?

我也尝试过这个答案中的代码: https://stackoverflow.com/questions/37631873/how-to-generate-interactive-dialog-checklist-from-command-output

像这样:

mapfile -t todo < <(mysql -uroot -hmy_host -p$my_pass -Dmy_db -BNe "select task from todo where complete=0;")

list=$(printf "'%s' off " "${todo[@]}")

cmd=$(dialog --stdout --no-items --separate-output --checklist "todo list" 20 65 15)

checklist=$("${cmd[@]}" "${list}")

但我收到这个错误。而且我不知道这意味着什么:

Expected at least 20 tokens for --chec, have 4.
Use --help to list options.

./test.sh: line 13: : command not found   #this is from checklist=$("${cmd[@]}" "${list}")

我本以为 mysql 到对话将是一项非常常见的任务,但我还没有找到关于该主题的任何问题或答案。我应该放弃并使用php和浏览器吗?

相关内容