Poor but Sexy - GUIs for bash-files with Zenity

Reading time ~2 minutes

[en]Every now and then we want to work with others who are less inclined to working with the console to use some bash files. As most of the skripts we make, only take a few options, we might think of adding a nice gui to the bash-file so that others are more likely to use it. As always, this can be done very quickly and for free in Linux.

All you need is to install the programm zenity and then write a script, that calls zenity to set the value of a parameter.

sudo apt-get install zenity

Then your next “program” is only a couple of lines away.

My first “project” - I will propably laugh about this one in a couple of weeks - was a little GUI that should replace a textstring “999999”  in a textfile with a string that is entered via the gui and save the result with a new filename. You only need to save the following code in a bash-file, e.g. “replace.sh” and make it executable.

#!/bin/bash cd /home/vikp/Desktop/HLT var=$(zenity --entry --text "Enter the replacement text" --entry-text "") sed s/9999999/$VP_name/g *.txt > newname_$var.dat

The reason I needed this was that I wanted a wrapper for psytoolkit - the brialliant linux program for reaction-time experiments - that asks for a participant codes and adds this code to the result file. The complete wrapper for psytoolkit now looks like this:

#!/bin/bash cd /home/vikp/Desktop/HLT VP_name=$(zenity --entry --text "Participant-Code" --entry-text "") ./experiment sed s/9999999/$VP_name/g hlt_5.psy.*.data > HLT_VP_$VP_name.dat[/en]

[de] Von Zeit zu Zeit möchten wir mit Leuten zusammen areiten, welche weniger gerne mit der Tastatur arbeiten um Bash-Files zu nutzen. Wir könnten dem Bash-File eine schöne GUI hinzufügen, damit es von anderen wahrscheinlicher genutzt wird. Wie immer kann dies sehr schnell und kostenlos in Linux realisiert werden.

Alles was tu tun musst ist das Programm Zenity zu installieren und anschließend ein Skript zu schreiben, welches Zenity dazu auffordert, die Parameterwerte zu setzen.

sudo apt-get install zenity

Dann ist dein nächstes “Programm” nur wenige Zeilen entfernt.

Mein erstes “Project” (vermutlich werde ich in einigen Wochen darüber lachen) war ein kleiner GUI, durch welchen der Textstring “999999” in eine Textdatei übersetzt werden sollte. Dieser wurde mit Hilfe des GUI eingegeben und das Ergebnis unter einem neuen Dateinamen gespeichert. Du brauchst dafür lediglich den folgenden Code in einem Bash-File zu speichern, z.B. “replace.sh” und es dann ausführbar machen.

#!/bin/bash cd /home/vikp/Desktop/HLT var=$(zenity --entry --text "Enter the replacement text" --entry-text "") sed s/9999999/$VP_name/g *.txt > newname_$var.dat

Ich brauchte das für eine Verpackung für Psytoolkit- das brilliante linux-Programm für Rekationszeitexperimente. Psytoolkit verlang einen Teilnehmercode und fügt diesen Code der Ergebnisdatei hinzu. Die vollständige Verpackung für Psytoolkit sieht folgendermaßen aus:

#!/bin/bash cd /home/vikp/Desktop/HLT VP_name=$(zenity --entry --text "Participant-Code" --entry-text "") ./experiment sed s/9999999/$VP_name/g hlt_5.psy.*.data > HLT_VP_$VP_name.dat[/de]

The world is flat F(1,18) = 39.200; p = .335 - or p < .01 or p <.001? - Check your stats!

A reviewers dream has come true. The new __statcheck__-package for [R](r-project.org) automagically checks the accurate __reporting__ of ...… Continue reading

Publication-lists-4-Your-Website

Published on June 19, 2015

Relaunch on Jekyll

Published on June 04, 2015