Forum: PC-Programmierung Linux-Programme in Scripten aufrufen


von SchnippSchnapp (Gast)


Lesenswert?

Hi,

ich möchte gerne in Scripten Linux-Programme aufrufen koennen, aber das 
klappt nicht. Ich hab mit nem Editor ein Script geschrieben und dort 
wollte ich z.B. einfach zum Ausprobieren erstmal einen einfachen Befehl 
reinschreiben

z.B.

ls - l

. Ich habe dann die Datei erstellt und rufe sie mit bs filename.bat auf 
oder bash, jenachdem, welche shell ich verwenden will. echo's und so und 
if und all das zeugs kann er verarbeiten, halt nur keine programme 
aufrufen, die ich sonst im kommandozeilenmodus auch aufrufen kann, wie 
z.b. der ls -l befehl. was mach ich denn falsch? ich habe auch schon die 
jeweilige batch-datei auf ausfuerhbar mit chmod gemacht, aber es klappt 
immer noch nicht :-(

von Stefan E. (sternst)


Lesenswert?

Und was bedeutet "klappt nicht" konkret?

von Klaus W. (mfgkw)


Lesenswert?

also wenn ich eine Datei erstelle mit dem Namen t.bat und dem Inhalt:
1
ls -l
und dann:
1
bash t.bat
eintippe, bekomme ich ein Inhaltsverzeichnis.

von Klaus W. (mfgkw)


Lesenswert?

Abgesehen davon, daß ich kein bs kenne, aber auch egal.

von Klaus W. (mfgkw)


Lesenswert?

Mit chmod ausführbar machen ist übrigens nicht nötig, wenn man
einen Interpreter aufruft und ihm den Dateinamen gibt.
Das braucht man nur, um die Datei direkt aufzurufen, also so:
1
./filename.bat
(ohne bash vorweg)

von Hc Z. (mizch)


Lesenswert?

> z.B.
>
> ls - l

Ist das ein Tippfehler, dass hier ein Leerzeichen zwischen „-“ und „l“ 
ist?  Sonst gibt es natürlich eine Fehlermeldung (es sei denn, Du hast 
zufällig zwei Dateien mit diesen Namen).

von Falk (Gast)


Lesenswert?

Klaus Wachtler schrieb:
> also wenn ich eine Datei erstelle mit dem Namen t.bat und dem Inhalt:ls -l
> und dann:bash t.bat
> eintippe, bekomme ich ein Inhaltsverzeichnis.

Was sonst hättest Du erwartet, wenn "ls -l" in Deinem Skript korrekt 
ausgeführt wird?

Falk
P.S.: ".bat" als Extension könnte zu Verwechslungen führen

von Klaus W. (mfgkw)


Lesenswert?

Falk schrieb:
> Klaus Wachtler schrieb:
>> also wenn ich eine Datei erstelle mit dem Namen t.bat und dem Inhalt:ls -l
>> und dann:bash t.bat
>> eintippe, bekomme ich ein Inhaltsverzeichnis.
>
> Was sonst hättest Du erwartet, wenn "ls -l" in Deinem Skript korrekt
> ausgeführt wird?

nichts anderes natürlich.

Ich hatte aber den TE so verstanden, daß genau das angeblich nicht
funktioniert und wollte ihm eine Vorlage zukommen lassen, die
er genau so nachvollziehen kann und ggf. sagen kann, wo etwas
bei ihm anders ist oder nicht klappt.
Aus seiner Frage kann ich nämlich nicht so recht herauslesen,
was er falsch macht.

>
> Falk
> P.S.: ".bat" als Extension könnte zu Verwechslungen führen

Kaum. Außer beim Aufrufer.

von Klaus W. (mfgkw)


Lesenswert?

mal eine ganz doofe Frage an SchnippSchnapp:
Arbeitest du unter Windows oder Linux?

von user (Gast)


Lesenswert?

also wenn die programme nicht gehen solltest du den kompletten pfad dazu 
angeben also zb eine Datei mit dem inhalt

#/bin/bash
/bin/ls -l

von (prx) A. K. (prx)


Lesenswert?

Wenn schon dann richtig.

#!/bin/bash
/bin/ls -l

von SchnippSchnapp (Gast)


Lesenswert?

Hmm, also, wenn ich den Pfad setze, dann klappt es. Aber schade, dass es 
nur mit Pfad funktioniert, weil wenn ich so im Kommandozeilenmodus bin, 
dann findet er die Programme und Befehle auch so. Jetzt gibt es noch 
andere Programme, die scheinen garnicht in dem Verzeichnis /bin zu sein 
:-(

von Gerhard Z. (germel)


Lesenswert?

schreib doch mal in deine t.bat ein "echo $PATH" rein damit man sieht, 
wie deine Pfad Variable hier gesetzt ist, etwa so:

#!/bin/bash
/bin/echo "Pfag = " $PATH
/bin/ls -l

und poste mal, was da drauf steht.

Gerhard

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.