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 $1 }')
frmname=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $2 }')

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

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

DepoisdeinserirseusdadoseclicaremOKoupressionarEnternoteclado,osdadosdoformulárioserãogravadosemumarquivodetextochamadotest.txt.Estouusandooawkparasepararosdadosdoformulário,queéumastringcomumpipe.separadordecampo,euacreditoqueháumamaneiradiretadeobterosdadossemawk,maseunãosounenhumespecialistaemyad,porfavor,verifiqueoprojetoemcasaefazerperguntas,vocêpodeencontrarumamaneiramaiselegante.

Comoobtereinstalaroyadaqui:

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