Interaktive Shell-Skripte mit Gum
Mi, 24. August 2022, Ralf Hersel
Wer in Shell-Skripten häufig auf die Interaktion mit dem Anwender setzt, kann sich die Arbeit mit dem Werkzeug Gum erleichtern. Das Projekt beschreibt es so: "Ein Werkzeug für glamouröse Shell-Skripte. Nutzen Sie die Kraft von Bubbles und Lip Gloss in Ihren Skripten und Aliases, ohne Go-Code zu schreiben!".
Gum lässt sich aus den Repos auf die übliche Art installieren, zum Beispiel mit pamac install gum oder apt install gum. Nach dem Aufruf von gum im Terminal, erscheint eine Liste der verschiedenen Optionen:
Commands:
choose Choose an option from a list of choices
confirm Ask a user to confirm an action
filter Filter items from a list
format Format a string using a template
input Prompt for some input
join Join text vertically or horizontally
spin Display spinner while running a command
style Apply coloring, borders, spacing to text
write Prompt for long-form text
Die meisten davon sind selbsterklärend, bzw. lassen sich ausprobieren. Wer es genauer wissen möchte, erhält mit der Option -h eine detaillierte Hilfe zu einer bestimmten Option, z. B. gum -h choose.
Hier sind ein paar Beispiele:
gum choose "Apfel", "Birne", "Kirsche"
Apfel,
> Birne,
Kirsche
Das Ergebnis der Auswahl wird in stdout geschrieben, kann jedoch zur Weiterverwendung im Skript in eine Variable oder eine Text-Datei geschrieben werden. Hier ist ein weiteres Beispiel:
gum confirm "Wirklich?"
Wirklich?
Yes No
Oder wie wäre es mit einem kleinen Text-Editor im Terminal?
gum write > test.txt
┃ Das ist ein mehrzeiliger Text,
┃ den Gum in eine Text-Datei schreibt.
┃ Die Länge des Mini-Editors wird
┃ von Gum automatische erweitert.
┃ Mit ESC wird die Eingabe beendet.
Dies sind nur ein paar einfache Beispiele. Gum kann noch viel mehr, wie ein Blick auf die Projektseite zeigt: