Диалог из скрипта bash - PullRequest
       10

Диалог из скрипта bash

12 голосов
/ 02 декабря 2011

Я хочу создать простой графический диалог (Qt, Gtk, ...), конкретно простой диалог печати, в качестве "внешнего интерфейса" для lpr в bash. Что я хочу? Сколько страниц на странице, интервал печати. Это (как минимум) два варианта.

Как лучше всего решить эту проблему?

Ответы [ 5 ]

21 голосов
/ 02 декабря 2011

Есть

Сообщается, что существуют другие реализации:

Если вы используете gpm, вы даже можете использовать мышь в консольной среде. Требуется tty, поэтому будет работать через ssh, screen, xterm и т. Д., Но не при передаче по трубам / перенаправлении.

Оба имеют более или менее одинаковый интерфейс, поэтому вы можете переключаться в зависимости от того, доступен ли дисплей X

Вот скрипт диалога, который отображает простое поле ДА / НЕТ:

#!/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

5 голосов
/ 02 декабря 2011

Я искал, кто такие создатели диалогов.Я нашел Яд и с этим я могу установить желаемые параметры:

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 голосов
/ 22 июня 2013

Whiptail отображает удобные диалоговые окна из сценариев оболочки

Whiptail - замена dialog с использованием newt вместо ncurses. Это предоставляет метод для отображения нескольких различных типов диалоговых окон из сценариев оболочки. Это позволяет разработчику сценария взаимодействовать с пользователь гораздо дружелюбнее.

whiptail example

1 голос
/ 03 февраля 2015

matedialog (AKA mate-dialog) использует GTK +.Это также может быть единственный инструмент диалога с графическим интерфейсом, доступный под Cygwin .

0 голосов
/ 22 мая 2014

Вы можете использовать gdialog в gnome/ubuntu. Я не могу найти xdialog больше в 14.10. Ответ от @sehe работает с ним, просто измените диалог на gdialog.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...