Hallo,
Ausgangssituation:
/xdotool
/xdotool/funktionen ....hier liegt "funktionen.sh" und "rbfunktionen".sh
/xdotool/rb ....hier liegt "rb.sh"
also :
/xdotool/funktionen/funktionen.sh
/xdotool/funktionen/rbfunktionen.sh
/xdotool/rb/rb.sh
ich starte ein Script aus dem Verzeichnis "/xdotool/rb" heraus -> cd /xdotool/rb && sh ./rb.sh
In der Datei "rb.sh" steht am Anfang ". ../funktionen/rbfunktionen.sh" , soweit ist noch alles verständlich für mich
aber was ich nun nicht verstehe ist, warum muss ich in der Datei "/xdotool/funktionen/rbfunktionen.sh" ". ../funktionen/funktionen.sh" schreiben, dass auch diese Funktionen von der "/xdotool/rb/rb.sh" ausgeführt werden, mein bisheriges Verständnis sagt mir, dass ich normaler Weise eigentlich in der Datei "/xdotool/funktionen/rbfunktionen.sh" nur ". ./funktionen.sh" stehen habe müsste , ist doch im gleichen Verzeichnis...... da ja die Datei "rbfunktionen.sh" die "funktionen.sh" Datei aufruft.
Hoffe es Verständlich geschrieben zu haben
Danke
(erledigt) Bash Funktionen aus andere/n Datei/en, Verständnis Frage
(erledigt) Bash Funktionen aus andere/n Datei/en, Verständnis Frage
Zuletzt geändert von ren22 am 16.02.2018 18:37:22, insgesamt 1-mal geändert.
Re: Bash Funktionen aus andere/n Datei/en, Verständnis Frage
Das liegt daran, dass die Pfade relativ zum Working-Directory sind, und das ist (solange du kein cd machst) weiterhin /xdotool/rb.ren22 hat geschrieben:14.02.2018 17:07:36aber was ich nun nicht verstehe ist, warum muss ich in der Datei "/xdotool/funktionen/rbfunktionen.sh" ". ../funktionen/funktionen.sh" schreiben, dass auch diese Funktionen von der "/xdotool/rb/rb.sh" ausgeführt werden, mein bisheriges Verständnis sagt mir, dass ich normaler Weise eigentlich in der Datei "/xdotool/funktionen/rbfunktionen.sh" nur ". ./funktionen.sh" stehen habe müsste , ist doch im gleichen Verzeichnis...... da ja die Datei "rbfunktionen.sh" die "funktionen.sh" Datei aufruft.
Es funktioniert ja leider auch nicht, wenn du statt:
Code: Alles auswählen
cd /xdotool/rb && ./rb.sh
Code: Alles auswählen
cd /tmp && /xdotool/rb/rb.sh
Use ed once in a while!
Re: Bash Funktionen aus andere/n Datei/en, Verständnis Frage
BASH_SOURCE koennte dir helfen. Siehe: https://stackoverflow.com/questions/305 ... ne-in-bash
Use ed once in a while!
Re: Bash Funktionen aus andere/n Datei/en, Verständnis Frage
Vielleicht wäre es sinnvoller die Anwendung so zu programmieren, dass sie aus jeden Ordner (ohne cd) korrekt gestartet werden kann. Dafür musst du dann aber absolute Pfade verwenden. Beispiele wären /opt oder /usr/local bzw. ~/.local wobei ich bei letztgenannten nicht sicher bin.
Re: Bash Funktionen aus andere/n Datei/en, Verständnis Frage
Dabei kann man BASH_SOURCE nutzen, um die absoluten Pfade dynamisch zu ermitteln.uname hat geschrieben:15.02.2018 09:00:41Vielleicht wäre es sinnvoller die Anwendung so zu programmieren, dass sie aus jeden Ordner (ohne cd) korrekt gestartet werden kann. Dafür musst du dann aber absolute Pfade verwenden.
Etwa in der Art (ungetestet):
Code: Alles auswählen
file="$(readlink -f "$BASH_SOURCE")"
incdir="$(dirname "$file")/../funktionen"
. "$incdir/funktionen.sh"
Use ed once in a while!
Re: Bash Funktionen aus andere/n Datei/en, Verständnis Frage
Code: Alles auswählen
file="$(readlink -f "$BASH_SOURCE")" incdir="$(dirname "$file")/../funktionen" . "$incdir/funktionen.sh"
geile Sache funktioniert perfekt !
Kommandos die mir bis dato noch nicht so geläufig waren. Sehr gut )) wieder was gerlernt
vielen vielen Dank