Я хочу создать простой диалог с помощью bash-dialog. Работаю с (X)DSL и bash-3.2. Последний (X)DSL основан на Linux 2.4.31 и поставляется с bash-2.05, однако bash-3.2 можно загрузить с MyDSL/Testing. Итак, мой скрипт работает под «#!/bin/bash-3.2/bin/bash».
Пункты меню, из которых пользователи могут выбирать, поступают из базы данных.
Пример файла базы данных 'armatures':
Внутреннее освещение|Внутреннее освещение
Наружное освещение|Уличное освещение
Я извлекаю данные в массив «options» из файла «armatures» с помощью:
options=($(awk -F| '{print $1,$2 }' каркасы)
и в терминале "эхо" массив:
эхо ${опции[@]}
который показывает:
Внутреннее освещение арматуры для внутреннего использования Наружное освещение арматуры для наружного использования
Это выглядит нормально для использования в качестве меню выбора с «whiptail», но это не так. Командная строка:
whiptail --clear --title Armatures --menu Выберите арматуру 50 80 10 ${options[@]}
показывает:
столбец1-столбец2
Внутренняя арматура
Освещение-для
Использование в помещении
Наружная арматура
Освещение-для
Наружное использование
вместо:
столбец1-столбец2
Внутренняя арматура-Освещение для внутреннего использования
Наружная арматура-Освещение для наружного применения
Кажется, что элементы массива с двойными кавычками игнорируются или не видны "хлыстохвосту". Я также попробовал ${options[@]}, но это всегда приводит к первому слову «Indoor».
Помимо «whiptail», я попробовал «dialog», но они одинаковы: информация о версии показывает «cdialog (ComeOn Dialog!) Версия 1.1-20080316» в обоих случаях.
У меня очень ограниченные ресурсы, и я не хочу (пока) рисковать в «xdialog», «zenity», «dzen» и тому подобное, даже если это решит эту проблему. Я также ограничен Linux 2.4.31 из-за XDSL (для XBOX).
Я много просматривал Интернет, но безрезультатно. Какое может быть решение с «хлыстом/диалогом»?