Datei mit shell/bash unter Linux includen

Bash, Shell, PHP, Python, Perl, CGI
tenshinhan10
Posts: 64
Joined: 2003-02-25 15:47

Datei mit shell/bash unter Linux includen

Post by tenshinhan10 »

Ich lagere bei einem Startscript ein Teil der Variablen in einer Extra Datei aus und will die in die eigentliche Startdatei includen. Ich hab dafür den Befehl source genommen. Das klappt soweit, ich kann die Variablen per Echo in der Startdatei anzeigen lassen, jedoch nicht damit arbeiten. Hier ein Beispiel:

Variablendatei:
PFAD=/test/test/
IP=255.255.255.255
...

Startdatei:
source Variablendatei

echo $PFAD <<-- das geht
cd $PFAD <<-- das nicht (andere Befehle mit der Variable gehen auch nicht)

Danke für Eure Tips !
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Datei mit shell/bash unter Linux includen

Post by captaincrunch »

Stichwort : export
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
User avatar
Joe User
Project Manager
Project Manager
Posts: 11176
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Datei mit shell/bash unter Linux includen

Post by Joe User »

/home/user/test/var.inc

Code: Select all

#!/bin/sh

export foo=Hello
export bar=World
/home/user/test/doit.sh

Code: Select all

#!/bin/sh

. /home/user/test/var.inc
echo "${foo} ${bar}"
tenshinhan10
Posts: 64
Joined: 2003-02-25 15:47

Re: Datei mit shell/bash unter Linux includen

Post by tenshinhan10 »

Danke für die Antworten. Ich hab nochmal ein simples Beispiel erstellt und das durchprobiert. Ich benutze das ohne geschweifte Klammern und habe den selbe Efekt. Ich hab aber rausgefunden, das in meinen Datei-Datei die "#####" und Zeilenumbrüche scheinbar Problem verursacht haben. Nachdem ich die rausgenommen habe, gabs keine Probleme mehr.
tenshinhan10
Posts: 64
Joined: 2003-02-25 15:47

Re: Datei mit shell/bash unter Linux includen

Post by tenshinhan10 »

Mir ist beim testen noch etwas aufgefallen: Wenn ich die Scripte in der konsole als root oder webuser starte gibts kein Problem. Die Datein werden richtig eingebunden (. /config/config.int). Wenn ich das ganze über das Web aufrufe führt er das mit einer relativen Pfadangabe nicht aus und meldet jedesmal, das er die Datei nicht findet. Ã?bers Web läuft es nur, wenn ich die Pfadangabe komplett mache (z.B: /wurzel/web/config/config.int). Gibt es dabei noch etwas zu beachten oder eine andere Schreibweise mit der ich die Pfadangabe bei Webnutzung realtiv machen kann ?