www.mikrocontroller.net

Forum: PC-Programmierung Linux-Programme in Scripten aufrufen


Autor: SchnippSchnapp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-(

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und was bedeutet "klappt nicht" konkret?

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Abgesehen davon, daß ich kein bs kenne, aber auch egal.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht 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:
./filename.bat
(ohne bash vorweg)

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mal eine ganz doofe Frage an SchnippSchnapp:
Arbeitest du unter Windows oder Linux?

Autor: user (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn schon dann richtig.

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

Autor: SchnippSchnapp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 
:-(

Autor: Gerhard Z. (germel)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.