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 :-(
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.
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)
> 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).
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
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.
mal eine ganz doofe Frage an SchnippSchnapp: Arbeitest du unter Windows oder Linux?
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
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 :-(
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.