Ernst May-Jung schrieb:
In dem "start.sh" werden Umgebungsvariablen gesetzt:
LOCAL_CLASSPATH=auerswald_lib.jar
....

Dann wird eine "start14.sh" gestartet.

Unter Gentoo liefen die Skripte auch so _ohne_ Veränderung.


Jetzt unter meinem Kubuntu Feisty laufen die nur noch wenn ich folgende Veränderungen vornehme:

1.) aus der Zeile
. start14.sh wird
./start14.sh
sonst startet nix.

2.) Die Umgebungsvariablen werden irgendwie "vergessen". Ich muß sie also nochmal von "start.sh" in "start.14.sh" kopieren.


3.) Fällt mir gerade beim schreiben dieser Mail auf: Ich muß "start14.sh" ausfürbar machen. -> Steht vielleicht in Zusammenhang mit 1.) ?
Mit dem "." liest man eine Datei ein. Alternativ kannst du auch "source" anstatt den "." verwenden. Da die Datei nur eingelesen wird, brauch sie nicht ausführbar zu sein. Beim Ausführen werden die Variablen von start14.sh nicht an start.sh übergeben, weswegen du die in start.sh auch nochmals neu definieren musst. Also eigentlich ne ganz einfache/logische Sache. Ich weiß das aber auch erst, seit ich mit intensiv mit BASH-Programmierung beschäftige. Was noch interessant wäre, ist die erste Zeile in deinem Script. Steht dort ein "#!/bin/sh" und du hast bei deinem "alten System" /bin/sh nach /bin/bash verlinkt wird das gehen. Hast du bei deinem "neuen" System aber tatsächlich die SH-Shell installiert, kann das schon die Ursache sein (SH hat zum Teil andere Syntax - bin mir nicht sicher, aber ich glaube auch was den "." angeht...).

man bash sagt dazu:
----cut----
        .  filename [arguments]
       source filename [arguments]
Read and execute commands from filename in the current shell environment and return the exit status of the last command executed from file- name. If filename does not contain a slash, file names in PATH are used to find the directory containing filename. The file searched for in PATH need not be executable. When bash is not in posix mode, the current directory is searched if no file is found in PATH. If the sourcepath option to the shopt builtin command is turned off, the PATH is not searched. If any arguments are supplied, they become the positional parameters when filename is executed. Otherwise the positional parameters are unchanged. The return status is the status of the last command exited within the script (0 if no commands are executed), and false if filename is not found or cannot be read.
----cut----

Liegt das alles an der verwendeten (ba)sh?    ( sh->dash )
Oder hat sich da was an der Philosophie geändert.
Siehe oben.

Naja, Antworten brauch ich nicht wirklich. Ich bin froh, dass es läuft und gewiss, mich zu lesen wenn ich wieder vor dem gleichen Problem stehen sollte.
Ich hoffe, dass es dich dennoch freut, eine Antwort zu bekommen :-)

Gruß, Peter
--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an