Я хочу вставить переменную (в основном текстовый файл для чтения) в тело команды как несколько параметров, но это не работает, потому что переменная не разрешена должным образом.
Моя переменная
MAIN_MENU="1 'Create new image' 2 'Start image as overriding' 3 'Start image as snapshot' 4 'Install OS' 5 'Settings'"
Эхо:
echo $MAIN_MENU
1 'Create_new_image' 2 'Start_image _as_overriding' 3 'Start _image_as_snapshot' 4 'Install_OS' 5 'Settings'
Именно этого я и ожидаю, и если я скопирую результат эха (вручную) в параметры команды, как показано ниже, это сработает.
dialog --title "Title" --menu 'Choose operation:' 0 0 5 1 'Create new image' 2 'Start image as overriding' 3 'Start image as snapshot' 4 'Install OS' 5 'Settings'
В этом случае параметры ... 1; Создать новое изображение; 2; Начальное изображение как переопределенное ...
Однако, когда я вставляю параметры в качестве переменной, он полностью игнорирует одинарные кавычки ..
MAIN_MENU="1 'Create new image' 2 'Start image as overriding' 3 'Start image as snapshot' 4 'Install OS' 5 'Settings'"
dialog --title "Title" --menu 'Choose operation:' 0 0 5 $MAIN_MENU
По существу, оставляя одинарные кавычки, но также разделяя параметры пробелами.
В этом случае параметры ... 1; 'Создайте; новый; образ'; 2; 'Начните; образ; в виде; overriding '; ...
Никакая замена котировок не привела к желанным результатам для меня.