Решено: Kdialog & stdIn

Модератор: Модераторы разделов

Mellon
Сообщения: 655
Статус: Powered by Gentoo
ОС: Gentoo

Решено: Kdialog & stdIn

Сообщение Mellon »

Есть вот такой пример:

Код: Выделить всё

kdialog --menu "Select a language:" a "American English" b French d "Oz English"

Вопрос.
Почему

Код: Выделить всё

kdialog --menu "Select a language:" $(echo 'a "American English" b French d "Oz English"')
дает совсем иной результат (по 1 слову на строку)?
Ведь

Код: Выделить всё

$ echo 'a "American English" b French d "Oz English"'
a "American English" b French d "Oz English"

Очень надо перенаправление в kdialog, может это по другому делается?
Некоммерческий файлообмен не может сравниваться с кражей, так как кража лишает кого-то возможности использовать украденный объект. ©
--------------------
Переворачиватель пингвинов
Спасибо сказали:
Аватара пользователя
КВН
Сообщения: 242
Статус: Новичок

Re: Решено: Kdialog & stdIn

Сообщение КВН »

Может так:

Код: Выделить всё

kdialog --menu "Select a language:" $echo a "Eng" b "Fra" c "Rus"
Спасибо сказали:
Mellon
Сообщения: 655
Статус: Powered by Gentoo
ОС: Gentoo

Re: Решено: Kdialog & stdIn

Сообщение Mellon »

> Может так: ...

дальше-то что?
если из переменной брать:

Код: Выделить всё

hjk='a "American English" b French d "Oz English"'
kdialog --menu "Select a language:" $echo $hjk
то снова та же фигня
Некоммерческий файлообмен не может сравниваться с кражей, так как кража лишает кого-то возможности использовать украденный объект. ©
--------------------
Переворачиватель пингвинов
Спасибо сказали:
Аватара пользователя
КВН
Сообщения: 242
Статус: Новичок

Re: Решено: Kdialog & stdIn

Сообщение КВН »

а если так:

Код: Выделить всё

#!/bin/sh

#kdialog --combobox "Select a language:" "en en" "de de" "ru ru"
lang=("en en" "de de" "ru ru")
kdialog --combobox "Select a language:" "${lang[@]}"
Спасибо сказали:
Mellon
Сообщения: 655
Статус: Powered by Gentoo
ОС: Gentoo

Re: Решено: Kdialog & stdIn

Сообщение Mellon »

К сожалению, нет. Это движение по кругу: как теперь присвоить значение переменной, чтоб диалог был в норме?
Кстати, и с обычным диалогом такая же ситуация: невозможно корректно передать содержимое в диалог.
Даже вот такой дикий спелл не прокатывает:

Код: Выделить всё

$(paste -d ' ' <(echo 'dialog --menu 20 50 0 "Выберите"') <(echo '"a" "aa a" "b" "b bb" "c" "cc c"'))
$(paste -d ' ' <(echo 'kdialog --menu "Выберите"') <(echo '"a" "aa a" "b" "b bb" "c" "cc c"'))
$(paste -d ' ' <(echo 'kdialog --combobox "Выберите"') <(echo '"aa a" "b bb" "cc c"'))
Некоммерческий файлообмен не может сравниваться с кражей, так как кража лишает кого-то возможности использовать украденный объект. ©
--------------------
Переворачиватель пингвинов
Спасибо сказали:
Аватара пользователя
Red User
Сообщения: 229
ОС: Debian

Re: Решено: Kdialog & stdIn

Сообщение Red User »

Код: Выделить всё

OLD_IFS=$IFS
IFS=_
str=$'a_American English_b_French_d_Oz English'
kdialog --menu "Select a language:" $str
IFS=$OLD_IFS
А ведь когда-то не боялись мы программы любой,
И с одним лишь debug'ом выходили на бой,
И искусно написанный вирус встречали как брата
Спасибо сказали:
Mellon
Сообщения: 655
Статус: Powered by Gentoo
ОС: Gentoo

Re: Решено: Kdialog & stdIn

Сообщение Mellon »

Вау!
Красный! Спасибо!
:D
Некоммерческий файлообмен не может сравниваться с кражей, так как кража лишает кого-то возможности использовать украденный объект. ©
--------------------
Переворачиватель пингвинов
Спасибо сказали: