I have this code which calls dialog with parameters and should create a menu with a single entry:
!/bin/bash
menu() {
echo dialog --clear --stdout --title "Menu" --menu "menu" 0 0 0 $1 # dialog --clear --stdout --title Menu --menu menu 0 0 0 1 "my menu item" 1
dialog --clear --stdout --title "Menu" --menu "menu" 0 0 0 $1
}
echo $(menu "1 \"my menu item\"")
It does create the menu but it creates 2 menu entries instead of one and adds double quotes to the menu item.
If I use this code it works:
!/bin/bash
echo dialog --clear --stdout --title "Menu" --menu "menu" 0 0 0 1 "my menu item" # dialog --clear --stdout --title Menu --menu menu 0 0 0 1 my menu item
dialog --clear --stdout --title "Menu" --menu "menu" 0 0 0 1 "my menu item"
As can be seen, even though in the first case the menu item parameter is in double quotes (see echo) it's interpreted as 3 parameters.
How can I make the first example work as expected?

