Я хочу отобразить список баз данных с их размерами, используя dialog checklist
, но получаю некоторую путаницу. Удаление пробела между размером и словом «МБ» помогает, но я не знаю, как его сохранить и сделать нормальный вывод.
Мой код:
#!/bin/bash
db_list_command="
SELECT table_schema, ROUND(SUM(data_length + index_length) / 1024 / 1024, 1)
FROM information_schema.tables
GROUP BY table_schema;
"
db_list=$(echo $db_list_command | mysql -N)
dialog_options=$(echo "$db_list" | awk '{print $1 " \"" $2 " MB\" off"}')
dialog --checklist "Select databases" 40 60 20 $dialog_options 2>/tmp/dout.txt
db_selected=$(</tmp/dout.txt)
echo $db_selected
Вывод кода выше:
https://imgur.com/a/fbgB9Vf
Вывод без пробелов между размером и МБ, но теперь с лишними дополнительными кавычками:
https://imgur.com/a/iikAlm6
Я хотел бы получить обычный контрольный список с размером в формате, подобном 5.8 MB
Как это сделать?
ps Если я выведу команду awk на терминал и затем скопирую и вставлю в диалог вручную - все нормально!