mysqlのダイアログボックス一覧

mysqlのダイアログボックス一覧

mysqlにToDoリストがあります。もっとインタラクティブにするために使用したいと思います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とブラウザを使うべきですか?

関連情報