printf - das bessere echo

  • echo vs printf

    Früher℠ habe ich in einem Shellscript Informationen fast nur mit echo ausgegeben. Heute schätze ich die formatierte Ausgabe. Dafür habe ich mir eine Art Beispieldatei in Form eines Shellscripts angelegt und wenn ich mal wieder vergessen habe, wie das gleich war, kann ich da dann nachschauen.

    Dieses Skript möchte ich mit Euch teilen.

    Wenn man es ohne Parameter aufruft, wird eine kleine Hilfe ausgegeben.

    Je nach Thema werden nur die wichtigen Informationen ausgegeben (--format, --escape) oder die benötigten Informationen mit Vorschau (--farben, --position, --tabulator) oder einfach eine Demo angezeigt wird und man dann im Skript nachschauen kann, wie das gemacht wird.

    Das Skript ist als Datei dem Post angehängt. Es läuft in der bash, die Demos werden evtl. in der dash scheitern (habe ich nicht getestet).

  • Danke für die Inspiration zu printf!

    Ein Hinweis: Hier auf Fedora mit bash 5.2.26 kommt die Meldung:

    Code
    $ bash printf.sh --demo progress
     0 %warning: usleep is deprecated, and will be removed in near future!
     warning: use "sleep 0.2" instead...

    Ich habe also in Zeile 357 angepasst:

    Bash
           #usleep 200000 
           sleep 0.2
  • Aha, danke für den Hinweis. Bei meinen Systemen habe ich bisher keinen Hinweis bei Verwendung von usleep erhalten. Da Dein Hinweis so nah an den Beitrag steht, schreibe ich nicht extra einen Hinweis in das Posting. Ich denke, es wird eh nur von Kundigen angewendet - alle anderen lernen Fehlersuche ;)

  • Mmh, ich glaube, ich muß noch ein paar Worte hinzufügen.

    Das Skript richtet sich an mehr oder weniger erfahrene Shellskripter, die zum einen unbekannte Möglichkeiten von formatierte Ausgabe und zum anderen eine Art Nachschlagewerk für 'wie war das gleich' erhalten.

    Die Ausgaben sind fürs zeigen von Möglichkeiten, schnelles kopieren (z.B. bei --farben), wie mache ich das gleich, etc. gedacht. Falls zu der Darstellung ein Programm nicht installiert ist, ändert man das auf sein System ab, installiert dies nach, was auch immer. Die Demo unter --progress ist eh so nicht verwendbar, aber wer eine Progressbar in seinem Shellskript braucht, kann aus dem Code in der Datei das bauen, was er braucht. Das usleep ist eh nur drin, um die Geschwindigkeit der Progressbar sichtbar(er) zu machen. Wenn das nicht drin wäre bestimmt die Laufzeit und damit die Hardware die Ausgabegeschwindigkeit.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!