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.
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
|
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.
Danke!
Habs jetzt so gelöst:
fullpath=$0
pathonly="${fullpath%/*="
if [ "$pathonly" = "."]; then
pathonly = `pwd`
fi
echo "$pathonly"
Grz
Supergudrun
Fuer sowas gibt es "dirname".
|
Quellcode
|
1
2
|
% dirname /home/wneessen/tmp/path.sh
/home/wneessen/tmp
|
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?
oh ja, sorry; das = sollte die Klammer sein. Inzwischen habe ich aber Chucky's Vorschlag angenommen, weils kürzer ist.
Grz
Supergudrun
hallo chucky
schön, mal wieder von dir zu lesen.
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)