[gelöst] Grundlagen : Shell-Skripte starten

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
darthrox
Beiträge: 24
Registriert: 27.01.2008 00:49:39

[gelöst] Grundlagen : Shell-Skripte starten

Beitrag von darthrox » 18.03.2008 11:23:02

Hallo,

habe ein kleines 'Verständnisproblem' - ich arbeite gerade ein Linux-grundlagenbuch
durch, in dem jetzt die ersten Shell-Skripte erstellt werden.

Klappt soweit auch alles prima, jedoch sollen laut Buch sich die Skripte per Name starten lassen,

also :

Code: Alles auswählen

test.sh
Die Datei liegt in meinem Root-Home Folder und sie hat auch die nötigen Rechte usw.

Code: Alles auswählen

-rwxr-xr-x 1 root root   43 2008-03-15 23:38 test.sh
Warum kann ich die Datei nur per ./test.sh und nicht per test.sh aufrufen ?

Vielen Dank schonmal

Gruss - DR
Zuletzt geändert von darthrox am 18.03.2008 12:11:51, insgesamt 1-mal geändert.

Benutzeravatar
ThJenal
Beiträge: 371
Registriert: 08.07.2005 12:48:07
Wohnort: Saarland

Beitrag von ThJenal » 18.03.2008 11:35:09

Hi,

der Ordner ist nicht in der Pfad-Variable aufgeführt:

Code: Alles auswählen

$> echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
Daher musst du den Pfad bei jedem Aufruf angeben.
We have reason to believe that man first walked upright to free his hands
for masturbation ...

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 18.03.2008 11:35:15

Weil das aktuelle Verzeichnis wohl nicht im PATH liegt.
Mache mal ein echo $PATH und dann siehst du alle Verzeichnisse, aus denen du das Skript "direkt" aufrufen kannst.

Du kannst aber deine gewünschten Verzeichnisse zum PATH hinzufügen.
Oh, yeah!

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Beitrag von Saxman » 18.03.2008 11:35:31

Ich hoffe Ich liege nicht ganz daneben.

Code: Alles auswählen

test.sh
bezieht sich auf deine vordeffinierten Pfade und sucht da. z.B in /usr/bin oder /usr/local/bin

Code: Alles auswählen

./test.sh
ist eine relative Pfadangabe und bezieht sich auf den Ordner in dem du dich gerade befindest.

Code: Alles auswählen

/home/darthrox/test.sh
wäre z.B wiederum eine absolute Pfadangabe.

Schönen Gruß
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

Benutzeravatar
darthrox
Beiträge: 24
Registriert: 27.01.2008 00:49:39

Beitrag von darthrox » 18.03.2008 12:07:59

Vielen Dank für die zahlreichen und hyperschnellen Antworten, hat auch prompt geklappt !!

Habe das 'Script'-Verzeichnis zu $PATH in der /etc/profile eingetragen und schon klappts.

Noch eine Verständnisfrage, mit ./ starte ich also nur in dem jeweiligen Verzeichnis vorhandene Skripte -
(D.h. als user01 starte ich ein Script unter /home/user01/scripte/script.sh mit ./script.sh aus dem jeweiligen
Verzeichnis)

Will ich dies generell zu einem Verzeichnis mit ausführbaren Skripten machen, füge ich der $PATH das
Verzeichnis $HOME/scripte hinzu, wodurch jeder Benutzer unter ~/scripte seine Scripte speichern kann
und sie aber nun systemweit funktionieren ?

Vielen Dank nochmals - :D

Grüsse

Antworten