Danke für deine Erklärung!
Code:
andreas@andreas-desktop ~/test $ uname -a
Linux andreas-desktop 2.6.31-22-generic #65-Ubuntu SMP Thu Sep 16 15:48:58 UTC 2010 i686 GNU/Linux
(eigentlich LinuxMint 8, welches aber auf Ubuntu 9.10 basiert (virtuelle Maschine))
sh ist bei mir ungleich bash, weil LOGTIME_DATE=${LOGTIME:0:10} in der bash funktioniert (Ausgabe "Mit Okt 27"), in der sh aber "./test.sh: 4: Bad substitution" ausgibt. (Siehe erstes Posting.)
Ich brauchte eine Lösung, weil, als ich zurück auf die bash gewechselt bin, andere Befehle des Scripts nicht mehr funktionierten. Z.B. dieser:
Code:
echo To: $RECEIVER > $TJ_FILE.result.mail
Auch das Anhängen von Text oder einer Leerzeile, z.B.
Code:
echo >> $TJ_FILE.result.mail
funktionierte bei Ausführung mit der bash nicht, mit sh jedoch schon.
Ich habe das kleine, vielleicht 100-zeilige Script vor einiger Zeit in der sh geschrieben und es funktionierte fast auf Anhieb. sh habe ich dabei eher zufällig gewählt, weil es kürzer war als bash. ;-)
Daß es da Inkompatibilitäten geben kann, damit habe ich nicht gerechnet. Ich dachte, das Ding ist so kurz und einfach, da ist es egal, was ich nehme. Funktioniert sicher überall.
Werde wohl mal alles so lassen, weil ich jedenfalls auf die Schnelle keine Idee habe, wie ich
Code:
echo To: $RECEIVER > $TJ_FILE.result.mail
usw. in der bash lauffähig mache. Und außerdem funktionierts ja jetzt mit der sh.
Und im schlimmsten Fall könnten andere Befehle in der bash auch nicht funktionieren (habe ich nicht getestet).
Mir fehlt wohl die Erfahrung, um überhaupt eine qualifizierte Entscheidung treffen zu können, welche shell ich jeweils nehmen soll. Oder nimmt man besser immer die gleiche, und wenn ja, welche?
Nochmals vielen Dank für die Erklärung!