Heute beleuchten wir einmal einen Teil der Bash den viele nicht kennen. Die internen Variablen. Um den Rahmen des Blogposts nicht zu sprengen, hier die Liste der coolsten Variablen:
IFS
Der Internal Field Separator hat sicherlich schon jeden Admin beim Skripten mit der Bash in den Wahnsinn getrieben. Er enthält das Zeichen mit dem in der Bash gesplittet wird. Ein kleines Beispiel das vermutlich jeder schon einmal in etwa dieser Richtung gemacht hat, die wenigstens sind sich aber bewusst sind das hier $IFS zum Einsatz kommt.
test@test# HOSTS="host1 host2 host3"
test@test# for i in $HOSTS; do echo $i; done
host1
host2
host3
test@test#

Der Inhalt der Variable $HOSTS wird durch $IFS gesplittet, da $IFS im Default mit einem Leerzeichen gefüllt ist. Das kurze Gegenbeispiel:
test@test# OLDIFS=$IFS
test@test# IFS=';'
test@test# for i in $HOSTS; do echo $i; done
host1 host2 host3
test@test#

SECONDS
Die Variable $SECONDS zeigt die Anzahl in Sekunden seit dem Start der Bash. Da beim Aufruf eines Bash-Skripts letztendlich auch nur eine Bash gestartet wird, kann man am Ende des Skriptes die Laufzeit wunderbar mit $SECONDS ausgeben / auswerten.
RANDOM
Eine Zufallszahl zwischen 0 und 32767
LINENO
Zum debuggen, die Zeilennummer im Skript oder die aktuell ausgeführte Funktion

Tobias Redel
Tobias Redel
Head of Professional Services

Tobias hat nach seiner Ausbildung als Fachinformatiker bei der Deutschen Telekom bei T-Systems gearbeitet. Seit August 2008 ist er bei NETWAYS, wo er in der Consulting-Truppe unsere Kunden in Sachen Open Source, Monitoring und Systems Management unterstützt. Insgeheim führt er jedoch ein Doppelleben als Travel-Hacker, arbeitet an seiner dritten Millionen Euro (aus den ersten beiden ist nix geworden) und versucht die Weltherrschaft an sich zu reißen.