6 votes

Un moyen rapide de créer une interface graphique pour une application bash

Je veux construire une interface graphique simple pour une application qui utilise bash. Par exemple, en cliquant sur un bouton, on exécute des commandes bash et ainsi de suite.

Il existe un créateur d'interface graphique aussi simple, je n'ai besoin que de boutons et de zones de texte, qui ne nécessite pas d'apprendre un nouveau langage de programmation ?

9voto

Sabacon Points 36458

J'ai posté une réponse aquí qui pourrait être utile, par commodité, je vais simplement le remettre ici.

Yad peut être utile à cet égard, c'est un fork de zenity avec plus de fonctionnalités, l'une d'entre elles étant la possibilité de créer des formulaires.

Voici un exemple très simple de formulaire :

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

Le script ci-dessus affichera un formulaire comme celui-ci :

enter image description here

Après avoir entré vos données et cliqué sur ok ou appuyé sur entrée sur le clavier, les données du formulaire seront écrites dans un fichier texte appelé test.txt, j'utilise awk pour séparer les données du formulaire qui sont une chaîne de caractères avec un pipe comme séparateur de champ, je crois qu'il y a un moyen direct d'obtenir les données sans awk mais je ne suis pas un expert de yad, s'il vous plaît vérifiez l'accueil du projet et posez des questions, vous pouvez trouver un moyen plus élégant.

Comment obtenir et installer yad ici :

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

maison du projet yad :

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

Plus d'exemples ici :

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

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

Il n'y a pas encore de concepteur de formulaires pour cela, mais comme la syntaxe est si simple et si proche de zenity, ce n'est généralement pas un problème.

7voto

Mufaka Points 54

Pour une entrée utilisateur simple, vous pouvez utiliser zenity (vit dans le zenity ). Un exemple simple pourrait être quelque chose comme ceci :

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

Pour un textarea (comme on dit dans le monde HTML), vous changez la syntaxe en quelque chose comme ceci :

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

Vous pouvez en savoir beaucoup plus en consultant son manuel . C'est une petite bibliothèque très flexible qui permet de saisir l'utilisateur dans de simples scripts.

Edit : Vous pouvez également en trouver de bons exemples sur Linuxaria .

3voto

Vaisarger Points 31

Jetez un coup d'oeil à ça : http://sites.google.com/site/easybashgui

Vous utilisez :

source easybashgui
input 2 "Address" "?" "Name" "?"
cp "$dir_tmp/$file_tmp" "test.txt"
clean_temp

0voto

phil294 Points 411

Essayez tkbash .

Vous pouvez spécifier des éléments comme ceci

tkbash 1 button b1 -x 0 -y 0 -w 100 -h 30 -t "click me" --command "notify-send hi"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X