Spielen mit Variablen

Variablen machen ein Script schon fast zu einem Programm. Daher sollte man sich ein wenig mit den Möglichkeiten auseinandersetzen. Man spart sich dann Aufrufe von Hilfsprogrammen wie awk, sed oder cut.

  1. Default-Wert: Wenn man eine Variable etwa in einer Operation verwendet und die Operation einen Wert erwartet, die Variable aber u.U. leer sein kann, dann muss man einen Default-Wert definieren. Ich mache das üblicherweise so, dass ich die Variable vorher mit dem Default-Wert setze, damit sie in jedem Fall existiert. Aber: Das muss man nicht! Man kann die Variable auch so ausgeben:
    $ echo $N
    
    $ echo ${N-0}
    0
    $ N=1
    $ echo ${N-0}
    1

    Hier wird der Default-Wert ausgegeben, ohne die Variable selbst zu ändern. Will man in dem Fall, dass die Variable ungesetzt ist, sie mit einem Wert setzen, geht das mit :=

    $ echo $N
    
    $ echo ${N:=0}
    0
    $ echo $N
    0
    
  2. Manchmal benötigt man nur einen Teil einer Variable, etwa die ersten drei Zeichen. Man kann dann mit ‚cut‚ arbeiten oder andere komplizierte Lösungen finden, oder man nutzt einfach einen entsprechenden Aufruf der Variable:
    $ N=123456789
    $ echo $N
    123456789
    $ echo ${N:0:3}
    123
    $ echo ${N:2:3}
    345
    $ echo ${N:2:-3}
    3456

    Der erste Fall gibt drei Zeichen der Variable, beginnend mit Position 0 (Anfang) und der zweite Fall beginnend mit Position 2 (drittes Zeichen). Der dritte zeigt alle Variablen ab Stelle 2 und bis zieht die letzten drei ab.

  3. Die Länge einer Variable ist auch oft interessant:
    $ N=123456789
    $ echo ${#N}
    9
    

    Und damit kann man auch den Anfang einer Variable nach Beispiel in 2. beschneiden (auch wenn #N hier sogar zu groß ist, aber es ist niemals zu klein):

    $ N=123456789
    $ echo ${N:2:${#N}}
    3456789
  4. Suchen und Ersetzen/Löschen geht auch:
    $ N=123456789
    $ echo ${N//2/3}
    133456789
    $ echo ${N//2/}
    13456789
    

Falls ich über weitere spannende Variablenspielerreien stolpere, werde ich darüber berichten!

Advertisements
Spielen mit Variablen

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s