Maneira rápida de criar gui para o aplicativo bash

5

Eu quero construir uma GUI simples para um aplicativo que use o bash, por exemplo, clicar em um botão executaria alguns comandos bash e assim por diante.

Há um criador de GUI também simples, eu preciso apenas de botões e textareas que não exijam para aprender uma nova linguagem de programação?

    
por Matteo Pagliazzi 21.12.2011 / 15:54

4 respostas

9

Eu postei uma resposta aqui , isso pode ser útil, por conveniência, vou apenas colocá-lo aqui novamente.

Yad pode ser útil a este respeito, é uma bifurcação de zenity com mais recursos, um deles a capacidade de criar formulários.

Aqui está um exemplo muito simples de um formulário:

#!/bin/bash


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


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

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

O script acima exibirá um formulário como este:

Depois de inserir seus dados e clicar em OK ou pressionar Enter no teclado, os dados do formulário serão gravados em um arquivo de texto chamado test.txt. Estou usando o awk para separar os dados do formulário, que é uma string com um pipe. separador de campo, eu acredito que há uma maneira direta de obter os dados sem awk, mas eu não sou nenhum especialista em yad, por favor, verifique o projeto em casa e fazer perguntas, você pode encontrar uma maneira mais elegante.

Como obter e instalar o yad aqui:

link

yad project home:

link

mais exemplos aqui:

link

link

Ainda não existe um designer de formulários, mas como a sintaxe é tão simples e tão próxima do zenity, isso geralmente não é um problema.

    
por Sabacon 21.12.2011 / 16:25
7

Para entrada de usuário simples, você pode usar zenity (vive no pacote zenity ). Um exemplo simples pode ser algo assim:

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

Para uma área de texto (como diríamos no mundo HTML), você alteraria a sintaxe para algo assim:

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

Você pode encontrar muito mais em seu manual . É uma pequena entrada de usuário de biblioteca muito flexível em scripts simples.

Edit: Você também pode encontrar alguns bons exemplos na Linuxaria .

    
por Oli 21.12.2011 / 16:07
3

Dê uma olhada nisso: link

Você usa:

source easybashgui
input 2 "Address" "?" "Name" "?"
cp "$dir_tmp/$file_tmp" "test.txt"
clean_temp
    
por Vaisarger 24.02.2012 / 09:59
0

Experimente tkbash .

Você pode especificar elementos como este

tkbash 1 button b1 -x 0 -y 0 -w 100 -h 30 -t "click me" --command "notify-send hi"
    
por Blauhirn 12.08.2017 / 19:16