[linux-l] Portable Shellscripte (was: Datum in Script verwenden)

Peter Ross Peter.Ross at alumni.tu-berlin.de
Fr Apr 13 04:11:03 CEST 2007


On Thu, 12 Apr 2007, Volker Grabsch wrote:

> Wie stellst du sicher, dass deine Shellscripte wirklich mit jeder Shell
> laufen, selbst mit denen, die du nicht auf deinem Rechner hast, und
> unter Unixen, die du nicht bei dir zu Hause hast (z.B. Solaris).
> 
> Ich bin mit vermeintlich portablen Scripte sowas von schnell an die
> Grenzen gestoßen, als ich sie unter Solaris zum Laufen bringen wollte.
> Das fängt damit an, dass man kein "\r" hat, sondern ein ^M direkt in
> die Scriptdatei reinhämmern muss. Und es geht weiter mit etwas anderen
> Parametern für sed, tar, etc.
> 
> (z.B. gibt's kein "tar -z" und kein "sed -i")

Ja. (z.B. tar -cf - | gzip > datei;-) Es ist schon ein bisschen Erfahrung 
dabei.

> Mit einem #!/bin/bash wäre es das schon. Zumindest wäre dann klar,
> unter welcher Shell es gestartet werden soll. Klare Verhältnisse
> statt "Hups, mit Shell XYZ funktioniert's doch nicht. Kleiner Fehler,
> aber wo genau? Nehm ich ne andere Shell ... hmm, in dem Script steht
> gar nicht drin, mit welchen Shells es getestet wurde ..."

Genau da ist der Punkt, schreibe rein, womit es getestet wurde - Du hast 
sowohl die "Dokumentation" a la #!/bin/bash

und die wesentlich erhoehte Wahrscheinlichkeit, dass es problemlos laeuft, 
auch wenn /bin/sh was anderes ist.

Bei Deinem obigen Solarisbeispiel hilft Dir die bash eh nicht - das tar 
und sed werden Probleme ausspucken, selbst wenn Du die bash installiert 
hast.

Speziell ein Initskript mit /bin/bash will ich wirklich nicht haben.. Es 
ist toll, wenn man dann beim naechsten Boot einen Weg zur Konsole machen 
muss..:-(

Gruss
Peter


Mehr Informationen über die Mailingliste linux-l