[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