Быстрый способ создать графический интерфейс для приложения Bash

Я хочу создать простой графический интерфейс для приложения, использующего bash, так что, например, нажатие кнопки приведет к выполнению некоторых команд bash и т. Д.

Существует также простой интерфейс для создания GUI, мне нужны только кнопки и текстовые области, которые не требуются для изучения нового языка программирования?

6
задан 21 December 2011 в 18:54

4 ответа

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

Yad может быть полезным в этом отношении, это - ветвление zenity с большим количеством функций, одним из них способность создать формы.

Вот очень простой пример формы:

#!/bin/bash


frmdata=$(yad --title "Test Form" --form --field "Address" --field="Name")


frmaddr=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $1 }')
frmname=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $2 }')

echo $frmaddr > test.txt
echo $frmname >> test.txt

Вышеупомянутый сценарий отобразит форму как это:

enter image description here

После того, как Вы вводите свои данные и нажимаете ОК или совершаете нападки, вводят в клавиатуру, данные формы будут записаны в текстовый файл под названием test.txt, я использую awk для разделения данных формы, которые являются строкой с каналом как разделитель полей, я полагаю, что существует прямой способ получить данные без awk, но я не yad эксперт, проверьте, что проект размещает и задает вопросы, можно найти более изящный путь.

Как получить и установить yad здесь:

http://www.webupd8.org/2010/12/yad-zenity-on-steroids-display.html

проект yad домой:

http://code.google.com/p/yad/

больше примеров здесь:

http://technostripe.com/yad-a-fork-of-zenity-with-more-features/

http://code.google.com/p/yad/wiki/Examples

Еще нет никакого конструктора форм для него, но так как синтаксис так прост и так близко к zenity, который обычно не является проблемой.

9
ответ дан 21 December 2011 в 18:54

Посмотрите на это: http://sites.google.com/site/easybashgui ​​

Вы используете:

source easybashgui
input 2 "Address" "?" "Name" "?"
cp "$dir_tmp/$file_tmp" "test.txt"
clean_temp
0
ответ дан 21 December 2011 в 18:54

Для простого пользовательского ввода вы можете использовать zenity (находится в пакете zenity). Простым примером может быть что-то вроде этого:

VARIABLE=$(zenity --entry --title="Give me inputz" --text="Write some stuff")
echo $VARIABLE

Для текстовой области (как мы бы сказали в мире HTML) вы бы изменили синтаксис на что-то вроде этого:

zenity --text-info --title="Give me inputz" --editable

Вы можете узнать намного больше из его руководства . Это очень гибкая пользовательская библиотека для ввода простых сценариев.

Редактировать: Вы также можете найти хороших примеров в Linuxaria .

0
ответ дан 21 December 2011 в 18:54

Попробуйте tkbash .

Вы можете указать такие элементы, как этот

tkbash 1 button b1 -x 0 -y 0 -w 100 -h 30 -t "click me" --command "notify-send hi"
0
ответ дан 21 December 2011 в 18:54

Другие вопросы по тегам:

Похожие вопросы: