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