Comment faire une interface graphique pour les scripts bash?
Je veux faire quelques graphiques des boîtes de dialogue pour mon script, mais ne savent pas comment.
J'entends quelque chose à propos de GTK-Serveur ou quelque chose comme ça.
Si quelqu'un sait comment faire un lien Bash avec tcl/tk, je suis également être satisfaits.
Merci de ne pas poster quelque chose comme "changement de C++" parce que mon projet
doit être un script en Bash; il n'y a pas d'autres options.
Des idées?
EDIT:
Merci pour les réponses mais je ne veux pas de "graphique" comme dans des couleurs dans la console, mais la fenêtre graphique qui je peux me déplacer, réduire, etc.
Je vais tester xmessage
, mais je ne pense pas que ce soit ce que je suis à la recherche d'.
EDIT 2:
Je ne veux pas faire un simple dialogue oui/non, mais certains d'interface comme les barres de progression et les boutons, quelque chose comme un jeu.
- Vous voulez certainement
zenity
. - Dans les vieux jours, il y avait "dtksh" un ksh-93 mise en œuvre avec l'accès à Motif de bibliothèques. Vous pouvez définir la fonction shell rappels et de faire une application graphique complète avec des scripts shell. Il a comporté boîte de dialogue, bouton, zone de texte, bouton-radio,...
- Jetez un oeil à
tkbash
. - la question est de 8 ans.
- unclosed dupe: stackoverflow.com/questions/8354482/dialog-from-bash-script
Vous devez vous connecter pour publier un commentaire.
Avant à l'aide de GUI de dialogues, d'envisager l'utilisation de la console d'invites. Assez souvent, vous pouvez vous en sortir avec un simple "o/n?" invites, qui en bash vous obtenir via le
lire
commande..Si l'invite de console est juste ne sera pas coupé, Zenity est vraiment facile à utiliser, par exemple:
Cela ne fonctionne que sur Linux/Gnome (ou plutôt, il sera installé par défaut sur de tels systèmes). Le
read
méthode fonctionne sur à peu près n'importe quelle plateforme (y compris sans tête machines, ou via SSH)Si vous avez besoin de quelque chose de plus complexe que ce que lire ou Zenity offre, "le changement C++" est vraiment la meilleure méthode (bien que je le recommande Python/Ruby sur C++ pour de tels shell-script-remplacement des tâches)
Comme un script de ligne de commande, il faudrait utiliser Python:
Ou de normaliser les valeurs entre 1 et 78 (si vous n'obtenez pas de ligne d'emballage sur un standard de la taille du terminal):
Zenity a aussi un Boîte De Dialogue De Progression,
Comme je l'ai dit avant, si Zenity ne peut pas faire ce que vous avez besoin, regardez dans la rédaction de votre jeu-chose comme un "bon" script en Python/Ruby/Perl/C++/etc car on dirait que vous êtes en repoussant les limites de ce qu'un shell-script peut faire..
Forbidden You don't have permission to access /users/zenity/stable/ on this server. Apache/2.2.15 (Red Hat) Server at help.gnome.org Port 80
Si vous voulez écrire une INTERFACE graphique en bash, zenity est le chemin à parcourir. C'est ce que vous pouvez faire avec lui:
La combinaison de ces widgets, vous pouvez créer de belles Interfaces graphiques utilisables. Bien sûr, il n'est pas aussi souple comme une boîte à outils intégrée dans un langage de programmation, mais dans certains cas, il est vraiment utile.
il y a une commande appelée
dialog
qui utilise la bibliothèque ncurses. "Dialogue est un programme qui vous permettra de présenter une variété de questions ou de messages de l'écran à l'aide de boîtes de dialogue à partir d'un script shell. Ces types de boîtes de dialogue sont mis en place (bien que tous ne sont pas nécessairement compilés dans la boîte de dialogue)"voir http://pwet.fr/man/linux/commandes/dialog
dialog
utilitaire,whiptail
doit également être mentionnée. Ils ont même maintenir un certain niveau de compatibilité entre les uns des autres.Bien, si vous pouvez utiliser Tcl/Tk dans votre environnement, vous devriez probablement écrire un script TCL et l'utiliser. Vous pouvez également regarder souhaitez.
Vous pouvez utiliser dialogue qui est ncurses ou arubais qui est l'argot base.
Je pense que les deux ont GTK ou Tcl/Tk liaisons.
Vous pouvez gtk-serveur pour cela. Gtk-serveur est un programme qui s'exécute en arrière-plan et fournit une interface en mode texte pour permettre à d'autres programmes (y compris des scripts bash) pour le contrôler. Elle présente des exemples de Bash (http://www.gtk-server.org/demo-ipc.bash.txt, http://www.gtk-server.org/demo-fifo.bash.txt)
S'il vous plaît, jetez un oeil à ma bibliothèque:
http://sites.google.com/site/easybashgui
Il est destiné à gérer, avec le même jeu de commandes, indifféremment toutes les quatre grands outils "kdialog", "Xdialog", "cdialog" et "zenity", selon si X est en cours d'exécution ou pas, si D. E. est KDE ou Gnome ou autre. Il y a 15 fonctions différentes ( parmi eux il y a deux "progrès" et "ajuster" )...
Bye
🙂
Si vous avez de l'intervalle Qt/KDE installé, vous pouvez utiliser kdialog, qui ouvre une fenêtre de dialogue Qt. Vous pouvez facilement définir pour afficher un Oui/Non dialogue, OK/Annuler, simple saisie de texte, saisie de mot de passe etc. Vous avez alors accès à l'valeurs de retour de ces boîtes de dialogue à la coquille.
Apparemment, quelqu'un a écrit un bash interface GTK+. Je ne sais pas si vous pouvez le faire facilement, mais il pourrait vaut la peine d'essayer. Vous pouvez le trouver ici:
http://home.eol.ca/~parkw/index.html#gtk