Portál AbcLinuxu, 8. května 2025 15:38

Dotaz: bash dialog --menu pole

5.2.2012 22:49 midnighter
bash dialog --menu pole
Přečteno: 372×
Odpovědět | Admin
Zdravim, Resim nasledujici problem. Mam funkci
 
menu {
dialog 	--title "title" \
	--menu "Select next step:" 15 60 8 "$@"
}
Coz krasne funguje pokud je jako parametr pole s retezci bez mezer. Potreboval bych ale aby to fungovalo i tak aby sel zobrazit retezec s mezerami jako jeden item. Toz ze se mi pole roztristi pri predani sem uz vyresil pomoci
 
local_array=("$@")
for (( i = 0 ; i < ${#local_array[@]} ; i++ ))
do
  ....
done
Ovsem stale nemuzu dojit na to jak to poskladat a predat dialogu aby to vzal jako nekolik retezcu s mezerama za sebou a ne jako retezce bez mezer a nebo jako jeden velky retezec

Diky vsem za rady

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.2.2012 23:20 Zopper | skóre: 15
Rozbalit Rozbalit vše Re: bash dialog --menu pole
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co zkusit nastavit IFS na nějakou jinou hodnotu, třeba "|", či nějakou řadu escape sekvencí? (IFS='|'; # set the Internal Field Separator to | ). Osobně to používám při práci se soubory na ošetření mezer v názvech...
"Dlouho ještě chcete soudit proti právu, stranit svévolníkům?" Ž 82,2
6.2.2012 00:58 l4m4
Rozbalit Rozbalit vše Re: bash dialog --menu pole
Odpovědět | | Sbalit | Link | Blokovat | Admin
Potreboval bych ale aby to fungovalo i tak aby sel zobrazit retezec s mezerami jako jeden item
To ale funguje.
menu() {
dialog --title "title" --menu "Select next step:" 15 60 8 "$@"
}

menu tag1 "Item name with spaces" tag2 "Another item with spaces"
Problém je někde jinde. Kde, to se z toho, cos napsal, nedá říci. Ale pokud děláš složitosti jako ta pole a for-cykly namísto
for x in "$@"; do
   ...
done
tak může být problém kdekoli...
Řešení 1× (midnighter (tazatel))
8.2.2012 13:03 midnighter
Rozbalit Rozbalit vše Re: bash dialog --menu pole [Vyřešeno]
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nakonec vyřešeno. Funkce funguje i s polem řetězců obsahující prázdné znaky je nutné ji ale volat
menu "${POLE[@]}"
oproti memu puvodnimu
menu ${POLE[@]}
"čachry" s local_array nebyly potřeba

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.