warum starten meine Scripte nicht ???

Post Reply
Message
Author
spool

warum starten meine Scripte nicht ???

#1 Post by spool »

Ich hab jetzt frisch Linux installiert und kaum Ahnung davon. Ich hab ein Script auf dem Rechner, daß sich nicht starten läßt. Ich hab über chmod 755 die Ausführungsrechte gesetzt usw. Seh ich mir das Script unter Pico an, kein Problem. Wenn ich's ausführen will krieg ich von der bash command not found. Was war das nochmal für ein Problem ????

Chris

Re: warum starten meine Scripte nicht ???

#2 Post by Chris »

Hi!

Wie sehen die Scripte denn aus?


Gruß
Chris

rattengift

Re: warum starten meine Scripte nicht ???

#3 Post by rattengift »

und wie rufst du die skripte auf? versuchs mal mit <font face="Courier New">"./skriptname"</font><!--fixed-->

spool

Re: warum starten meine Scripte nicht ???

#4 Post by spool »

./Scriptname funzt. Aber warum ???
Vor kurzem in einem Unix Grundlagen Lehrgang konnte ich die Dinger so aufrufen.

THX

spool

Chris

Re: warum starten meine Scripte nicht ???

#5 Post by Chris »

Hi!

Weil das aktuelle Verzeichnis "." nicht im Pfad ist.


Gruß
Chris

Bazant

Re: warum starten meine Scripte nicht ???

#6 Post by Bazant »

ein Ausführen ohne ./ veranlaßt das System dazu, daß es die PATH-Variable durchgeht.

ein

PATH=./:$PATH && export PATH

veranlaßt das System dazu, daß es immer erst im aktuellen Verzeichnis nach dem Programm/Script sucht

Gruß
Bernhard

Jochen

Re: warum starten meine Scripte nicht ???

#7 Post by Jochen »

Den "." an den Anfang der PATH-Variablen zu setzen ist allerdings nicht zu empfehlen. Als Systemadministrator sollten <i>nur</i> vertrauenswürdige Verzeichnisse in der PATH-Variablen enthalten sein. So kann einem niemand ein böswilliges Skript unterjubeln.

Als Anwender sollte man zumindest den Punkt an das Ende der PATH-Variable setzen, da diese sequentiell durchgearbeitet wird, also statt <pre>PATH=.:$PATH</pre> ein <pre>PATH=$PATH:.</pre>Die sauberste Lösung wäre es, ein eigenes $HOME/bin-Verzeichnis in die PATH-Variable aufzunehmen und seine Skripte in diesem Verzeichnis zu entwickeln.

Jochen

Bazant

Re: warum starten meine Scripte nicht ???

#8 Post by Bazant »

jo ... Jochen hat da völlig recht

Diese Lösung sollte so keinesfalls in einem der Profiles stehen, ist aber für eine Entwicklungssitzung recht hilfreich.
Ich bevorzuge persönlich trotzdem das aktuelle Verzeichnis als ersten Pfad, denn für die jeweils aktuelle Sitzung zum Erstellen von Scripts kann ich einen identischen Namen der Befehle verwenden (beim namen test kann es für den Anfänger schon Probleme geben) <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
das Anlegen eines bin-verzeichnisses im $HOME ist bei weitem besser, da der Pfad $HOME/bin bei den meisten Distributionen eh schon gesetzt ist.

Gruß Bernhard

Dummi

Re: warum starten meine Scripte nicht ???

#9 Post by Dummi »

Das klingt ja alles sehr interessant, leider hab ich fast kein Wort verstanden. Wo setzt man denn die Path-Variable?

Jochen

Re: warum starten meine Scripte nicht ???

#10 Post by Jochen »

Mach einfach mal ein <pre>echo $PATH</pre>Das ist eine Liste von Verzeichnissen, getrennt durch Doppelpunkte. Wenn man einfach ein Kommando eintippt, durchsucht die Shell diese Verzeichnisse nach einer passenden Datei und führt sie aus. Dieser Mechanismus greift <i>nicht</i>, wenn man einen aboluten Pfadnamen (/sbin/ifconfig) oder relativen Pfadnamen (./mein-skript) verwendet. Das ist eine grundsätzliche Eigenschaft der Shell.

Wenn Du nun weitere Verzeichnisse in den Suchpfad aufnehmen willst, musst Du die PATH-Variable ändern. Setzen kann man eine Variable durch<pre>VAR=inhalt</pre>An deren Inhalt kommt man, in dem man ein "$" voranstellt. Ausgabe des Inhalts einer Variablen ist also beispielsweise<pre>echo $VAR</pre>Um nun an die PATH-Variable ein Verzeichnis anzuhängen, schreibt man<pre>PATH=$PATH:.</pre>Aufgeschlüsselt: Setze die Variable PATH (PATH=)auf den alten Inhalt von PATH ($PATH) plus der Zeichenkette ":." (Feldtrenner : und aktuelles Verzeichnis .). Wenn Du das an Deinem Shellprompt eintippst, hast Du für diese Session den Suchpfad schon ergänzt.

Wie baust Du das nun so ein, dass Du es nicht jedesmal neu eintippen musst? Ganz einfach: Jede Shell arbeitet sog. rc-Skripte ab, um die dem User genehme Umgebung herzustellen. Bei der Linux-typischen bash ist es entweder die Datei .profile oder die Datei .bash_profile in Deinem Home-Directory. Wenn Du dort die o.a. Zeile einfügst, führt die Shell bei jeder Anmeldung das Ergänzen der PATH-Variablen aus.

Uff. Noch Fragen? <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Jochen

NichtmehrDummi

Re: warum starten meine Scripte nicht ???

#11 Post by NichtmehrDummi »

Danke für die tolle Erklärung !!!

Post Reply