Interaktive Shell-Skripte mit Gum

  Ralf Hersel   Lesezeit: 3 Minuten  🗪 1 Kommentar

Das Werkzeug bietet nützliche Befehle, um die Interaktion in Shell-Skripten zu vereinfachen und zu verschönern.

interaktive shell-skripte mit gum

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:

Quelle: https://github.com/charmbracelet/gum

Tags

Shell, Interaktion, Skript, Vereinfachung

UbIx
Geschrieben von UbIx am 25. August 2022 um 19:23

Ist wohl ähnlich wie Dialog, KDialog bzw. Zenity. Kennt jemand die Unterschiede bzw. Vor- und Nachteile?