PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ausführung von Skripten



Sorehead
07.11.06, 10:00
Hallo!

Ich habe mal ne dumme Frage - ich nutze es zwar weiß aber nicht wieso.

Wo ist der unterschied, wenn ich ein Skript mit
./skriptname oder mit
. skriptname starte???

Vielen Dank im voraus..

Escorte2
07.11.06, 10:05
Hi Sorehead.

Steht in der bash-Manpage. "." verhält sich wie der Befehl "source":

[...]
. 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 filename.
[...]
;)

E2

Sorehead
07.11.06, 10:10
Hmm, das verstehe ich dann aber nciht.

Ich habe einSkript welches mit Environment-Vairablen setzen soll.
Und das funktioniert nur mit
. set_env.sh

buzz768
07.11.06, 10:15
http://www.linuxforen.de/forums/showthread.php?t=216754

Escorte2
07.11.06, 10:18
Klarer Fall. Mit ./skriptname wird eine neue Shell gestartet, und die Umgebungsvariablen sind futsch, sobald das Skript durchgelaufen ist und die neue Shell beendet wird. Mit . skriptname werden alle Befehle in der aktuellen Shell ausgeführt (execute commands from filename in the current shell). Die Variablen bleiben erhalten.

Sorehead
07.11.06, 10:22
Ahhhh :D

Ok, dann ist klar...

Vielen Dank!!!!

3qualizer
07.11.06, 11:08
Wobei das eine mit dem anderen nicht viel zu tun hat: ./ gibt nur explizit an, daß sich die auszuführende Datei im gleichen Pfad befindet. Gibst du kein ./ an, wird $PATH durchsucht, was u.U. woanders zuerst fündig wird.