Aufzucht und Hege von Shell-Scripts: Shell-Unterschiede

Unterschiede zwischen den Shells

Überlegt Euch, auf welchen Systemen und in welchen Shells Euer Script laufen soll. Die Bourne Again Shell (bash) ist auf Linux-Rechnern wohl immer vorhanden. Auf kommerziellen Unix-Systemen sieht das z. T. anders aus, dort findet man sie heutzutage zwar meist, aber sie ist nicht die Default-Shell und manchmal auch nicht vorhanden. Dafür gibt es die Korn-Shell (ksh). Die bash bietet einige Sprachkonstrukte, die in anderen Shells nicht vorhanden sind, im Zweifelsfall seht Euch also nach einer kompatiblen Lösung um. Ihr könnt das auch testen, zumindest die Public Domain Korn-Shell (pdksh) sollte Bestandteil vieler Distributionen sein. Hier ein Beispiel für solche Unterschiede:

  # Kommandosubstitution
  # bash-spezifisch
  DATUM=$(date)
  # alle Shells:
  DATUM=`date`

  # Variablen-Export
  # nur bash und ksh:
  export PFAD=/home/jan
  # alle Shells:
  PFAD=/home/jan
  export PFAD

Update: Kürzlich hatte ich die Manual-Page der Korn-Shell auf einem Solaris10-Rechner vor Augen. Es scheint so, dass einige Fähigkeiten der bash mittlerweile auch hier verfügbar sind, wie z. B. die Kommandosubstitution aus meinem 1. Beispiel.