Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

11.02.2010, 20:20

Bash: Ausgabe des Speicherpfades

Hallo,

mein Problem ist folgendes:

innerhalb eines Bash-Skriptes möchte ich den Pfad ermitteln, in der das Skript gespeichert ist.

Beispiel:

Skript= /home/hans/skripte/test.sh

Ich befinde mit z. B. in /tmp/ und rufe von dort die o. g. Datei auf. Der gesuchte Befehl soll mit "/home/hans/skripte" ausgeben.

Kann mit da einer weiterhelfen?
Grz
Supergudrun

2

11.02.2010, 21:53

Quellcode

1
2
3
4
5
6
7
#! /bin/bash
if [[ "${0:0:1}" = '/' ]]; then
        script="$0";
else
        script="$(pwd)/$0";
fi
echo "$script";
Mit Vorsicht zu genießen.

3

11.02.2010, 22:03

Danke!

Habs jetzt so gelöst:

fullpath=$0
pathonly="${fullpath%/*="
if [ "$pathonly" = "."]; then
pathonly = `pwd`
fi

echo "$pathonly"
Grz
Supergudrun

Chucky the Devil

Pianist im Puff

  • »Chucky the Devil« ist männlich

Beiträge: 1 636

Wohnort: Koeln

Beruf: Network Architect

  • Nachricht senden

4

12.02.2010, 11:30

Fuer sowas gibt es "dirname".

Quellcode

1
2
% dirname /home/wneessen/tmp/path.sh
/home/wneessen/tmp

5

12.02.2010, 20:44

Zitat

Original von supergudrun
fullpath=$0
pathonly="${fullpath%/*="
if [ "$pathonly" = "."]; then
pathonly = `pwd`
fi

echo "$pathonly"

Da fehlt doch was. Das läuft doch so nie. Also, zumindest so eine Klammer "}" fehlt mal. Sollte das "=" ein Klammer sein?

6

13.02.2010, 01:20

oh ja, sorry; das = sollte die Klammer sein. Inzwischen habe ich aber Chucky's Vorschlag angenommen, weils kürzer ist.
Grz
Supergudrun

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

7

13.02.2010, 23:32

hallo chucky
schön, mal wieder von dir zu lesen. :applaus:

Zitat

Original von Chucky the Devil
Fuer sowas gibt es "dirname".


die shell-parametersubstitution zu benutzen ist zwar nicht so leicht zu lesen, aber effizienter.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »linuxerr« (17.02.2010, 10:24)


Thema bewerten