[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: dialog dynamic menu



Vadim Vatlin -> debian-russian@lists.debian.org  @ Fri, 15 Jun 2007 13:03:07 +0400:

 >> Не у dialog, а у sh.  dialog тут совершенно ни при 
 >> чем.  У парсера sh,
 >> впрочем, тоже логика вполне 
 >> систематическая.  Правда, не интуитивная.
 >> Применительно к данному случаю - вывод 
 >> команды в `` режется на слова
 >> без учета кавычек.
 VV> Хм.. не могу понять...
 VV> Что значит режеться ???

Вывод команды в `` будет подставлен не как одно "слово", а как
несколько.  И при разрезании его на несколько слов для этой подстановки
кавычки не учитываются.

 VV> В качестве shell я использую bash:
 VV> If the substitution appears within double quotes, word splitting and
 VV> pathname expansion are not performed on the results.
 VV> НО:
 VV> 	${DIALOG} --checklist     "Choose any items: " 0 0 0 \
 VV>         	"$(< checklist)" \
 VV> 		2> /tmp/checklist.tmp.$$
 VV> Тоже не работает.

Правильно, тут ты подставляешь вывод _одним_ словом.  А тебе надо
шестью.

 VV> И почему тогда dialog такое не понимает:
 VV> CHECK_LIST='
 VV> 	"item1" "Description of item1" off
 VV> 	"item2" "Description of item2" off'

 VV> и такое не понимает:
 VV> CHECK_LIST="
 VV> 	\"item1\" \"Description of item1\" off
 VV> 	\"item2\" \"Description of item2\" off"

 VV> ${DIALOG} --checklist     "Choose any items: " 0 0 0 \
 VV>         $CHECK_LIST \
 2>> /tmp/checklist.tmp.$$

 VV> Тоже не работает.

 VV> p.s.
 VV> хотелось бы понять, логику работы... 

Читать ман на sh надо целиком.  Там написано, что он в каком порядке
делает.  Из этого, собственно, следует, почему оно раскрывается так, а
не иначе.

Скорее всего, два последних варианта сработают в виде

eval "${DIALOG} --checklist \"Choose any items: \" 0 0 0 $CHECK_LIST"

-- 
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru

/итд/почтопосылалка.нстрк (c)



Reply to: