Диалог от bash script
Я хочу создать простой графический диалог (Qt, Gtk,...), который, безусловно, представляет собой простой диалог печати, как "frontend" для lpr, в bash.
Что я хочу? Сколько страниц на странице, интервал печати. Это (по крайней мере) два варианта.
Каков наилучший способ решить эту проблему?
Ответы
Ответ 1
Я искал, какие создатели диалога. Я нашел yad и с этим могу установить желаемые параметры:
yad --skip-taskbar --center --title="Print dialog" {--image,--window-icon}=/usr/share/icons/Tango/72x72/devices/printer1.png --form --item-separator=, --field="Pages per sheet":CB 1,2,4,6,8 --field="Pages"
![Dialog]()
И когда я выбираю "2 страницы на лист" и страницы "1-12", а после нажатия OK
вывод будет 2|1-12|
.
Это то, чего я хотел. Zenity или Xdialog могут делать похожие?
Ответ 2
Существует
Сообщается, что существуют другие реализации:
Если вы используете gpm
, вы даже можете использовать мышь в среде консоли. Он требует tty, поэтому он будет работать поверх ssh, screen, xterm и т.д., Но не при пересылке/перенаправлении.
Оба имеют более или менее одинаковый интерфейс, поэтому вы можете переключаться в зависимости от того, доступен ли X-дисплей
Вот диалоговое окно script, в котором отображается простое поле "Да/Нет":
#!/bin/bash
DIALOG=${DIALOG=dialog}
$DIALOG --title " My first dialog" --clear \
--yesno "Hello , this is my first dialog program" 10 30
case $? in
0)
echo "Yes chosen.";;
1)
echo "No chosen.";;
255)
echo "ESC pressed.";;
esac
![enter image description here]()
Замена dialog
на xdialog
:
![enter image description here]()
Ответ 3
Whiptail отображает удобные диалоговые окна из сценариев оболочки
Whiptail является заменой dialog
, используя newt вместо ncurses. Это
предоставляет способ отображения нескольких различных типов диалоговых окон
из сценариев оболочки. Это позволяет разработчику script взаимодействовать с
пользователь намного дружелюбнее.
![whiptail example]()
Ответ 4
matedialog
(AKA mate-dialog
) использует GTK+. Он также может быть единственным инструментом диалога script GUI, доступным в Cygwin.
Ответ 5
Вы можете использовать gdialog
в gnome/ubuntu
. Я больше не могу найти xdialog
в 14.10. Ответ от @sehe работает с ним, просто измените диалог для gdialog
.