Bashscript - Befehl nicht gefunden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Syke
Beiträge: 162
Registriert: 23.01.2005 15:56:34

Bashscript - Befehl nicht gefunden

Beitrag von Syke » 23.01.2005 16:08:15

Hi,

Ich habe mich gestern, nach langer Zeit mal wieder daran gemacht ein Bashscript zu schreiben.
Ich stelle fest das meine Bash sich allerdings sehr eigenartig verhält.
Wenn ich z.B aus einem Script heraus den Befehl cp ... verwende kriege ich folgende Fehlermeldung:

cp: command not found

Dasselbe Problem habe ich mit jedem Programm dass ich aus dem Script starten will wie z.B licq,grep,cp,tail usw.
Allerdings funktionieren diese Kommandos ohne Probleme wenn ich sie ohne Script, direkt in die Bash(per Eterm) eingebe.
es funktionieren nur minimal Kommandos wie cd,test,if usw.

btw:Ich benutze Debian SID und meine Bash ist Version 3.00.16

mfg
Syke
früher als noch nichts funktionierte, war alles einfacher! // linux

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 23.01.2005 16:37:33

du kannst in deinem Script die PATH Environmentvariable setzen oder auch der Frage nachgehen, warum diese anscheindend leer ist.

Das Kommando "which" zeigt dir, ob ein Programm gefunden wurde und wo es gefunden wurde.

Code: Alles auswählen

gms@gms1:~$ which cp
/bin/cp
Dieses Kommando zeigt dir, warum cp gefunden wurde

Code: Alles auswählen

gms@gms1:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11
Die PATH Environmentvariable enthält also bei mir folgende Verzeichnisse:

Code: Alles auswählen

/usr/local/bin
/usr/bin
/bin
/usr/bin/X11
Alle Programme in diesen Verzeichnissen werden also gefunden.

Die Kommandos die bei dir funktionieren (cd,if), sind sogenannte "builtin" Kommandos, dafür benötigt die Shell keine PATH Environmentvaribale. Das Kommando "test" existiert sowohl als Programm, als auch als builtin Kommando.

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: Bashscript - Befehl nicht gefunden

Beitrag von roli » 23.01.2005 16:40:23

Hi,
Syke hat geschrieben:Ich habe mich gestern, nach langer Zeit mal wieder daran gemacht ein Bashscript zu schreiben.
Ich stelle fest das meine Bash sich allerdings sehr eigenartig verhält.
Wenn ich z.B aus einem Script heraus den Befehl cp ... verwende kriege ich folgende Fehlermeldung:

cp: command not found

Dasselbe Problem habe ich mit jedem Programm dass ich aus dem Script starten will wie z.B licq,grep,cp,tail usw.
Allerdings funktionieren diese Kommandos ohne Probleme wenn ich sie ohne Script, direkt in die Bash(per Eterm) eingebe.
Ohne eine Erklaehrung dafuer zu haben, wuerde ich darauf tippen, das die Befehle nicht im Pfad enthalten sind. Schreib doch mal ein "echo $PATH", oder besser noch ein "set" in ein Script, diesen Output vergleichst du dann mal mit dem was angezeigt wird, wenn du die Befehle manuell in einer Shell ausfuehrst. Wenn echo nicht gefunden wird, es liegt in /bin
Syke hat geschrieben: es funktionieren nur minimal Kommandos wie cd,test,if usw.

btw:Ich benutze Debian SID und meine Bash ist Version 3.00.16
Das sind auch "Shell Build In's", die gehen immer.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Benutzeravatar
Syke
Beiträge: 162
Registriert: 23.01.2005 15:56:34

Beitrag von Syke » 23.01.2005 17:33:07

Problem von alleine gelöst :oops:

hatte von einem Script aus dem Netz einen Teil übernommen der einer Variablen den Namen PATH zuweist.Sehr genial :?
früher als noch nichts funktionierte, war alles einfacher! // linux

Antworten