lesenv
Anmeldungsdatum: 11. Mai 2015
Beiträge: Zähle...
|
Hallo, folgendes Script funktioniert nicht, aber wenn ich alle Befehle einzeln im Terminal einfüge, geht alles wunderbar!
cd ~/bla/foo-bar/
make
sudo make install
sudo modprobe -r rtl8192cu
sudo modprobe 8192cu
Ich werde sogar nach dem Passwort gefragt, aber danach geht es nicht weiter...
Kann mir einer helfen?
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12822
|
Hast Du vielleicht irgendwelche Aliase in Deiner interaktiven Shell definiert? Schau doch mal die Ausgabe von an oder poste sie hier. Mit welcher Shell führst Du das Skript denn aus?
|
Kriev
Anmeldungsdatum: 12. Dezember 2010
Beiträge: 349
Wohnort: Unter dem Tisch
|
Salü, eventuell komme ich dem ganzen ein wenig zuvor, aber bist du dir sicher dass das Script ausführbar ist? bzw. was sagt die Ausgabe von:
ls -l <scriptname>
kleine Erläuterung: x: eXecutable, r: Readable, w: writable und wie versuchst du das Skript auf zurufen? Falls du es mit:
./<scriptname>
aufrufen willst muss das Skript erstens ausführbar sein, und (je nachdem gehts auch ohne aber sie sollte schon gesetzt sein) wie lautet die erste Zeile des Skripts? Siehe –> Shebang für Shellskripte Cheers!
- Zodiak PS: mit
bash <scriptname>
funktioniert es auch ohne eine shebang oder dem executableflag.
|
wxpte
Anmeldungsdatum: 20. Januar 2007
Beiträge: 1175
Wohnort: Schäl Sick
|
Kriev schrieb: Salü, eventuell komme ich dem ganzen ein wenig zuvor, aber bist du dir sicher dass das Script ausführbar ist?
Wenn der Benutzer nach Aufruf des Skripts nach dem Passwort gefragt wird, kann man davon ausgehen, dass das Skript zumindest in Teilen ausgeführt wird (also auch die entsprechenden Rechte hat). Ansonsten würde die Fehlermeldung
bash: ./<scriptname>: Keine Berechtigung ausgegeben.
|
Kriev
Anmeldungsdatum: 12. Dezember 2010
Beiträge: 349
Wohnort: Unter dem Tisch
|
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12822
|
Zusätzlich zu dem, was ich oben schrieb, kannst Du auch mal diese Zeile am Anfang des Skriptes nach der Shebang-Zeile aber auf jeden Fall vor dem cd einfügen und Dir die Ausgabe anschauen:
|
lesenv
(Themenstarter)
Anmeldungsdatum: 11. Mai 2015
Beiträge: 6
|
Hi, ich versuch mal das der Reihenfolge nach zu beantworten:
gibt
| cd ist eine von der Shell mitgelieferte Funktion.
make ist /usr/bin/make
sudo ist /usr/bin/sudo
|
und
gibt
Eine Shebang-Zeile habe ich in dem Skript noch nicht gehabt. So richtig testen kann ich das Skript erst wieder wenn die automatische Aktualisierung durchgelaufen ist. Meist muss ich dann mit Hilfe des Skriptes den WLan-Adapter-Treiber laden. Noch schöner wäre es, wenn das Skript von alleine läuft und ich nicht alle Zeilen einzeln in das Terminal reinkopieren muss. NOCH schöner wäre es natürlich, wenn der Adapter-Treiber drinbleibt, aber so nehme ich es als Lernhilfe für Shell-Scripting. Bin schon weiter, vielen Dank: Ich habe etwas gelernt! 😉
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17552
Wohnort: Berlin
|
Welche Shell soll denn darüber stolpern? Eine Pythonshell vielleicht?
Ich werde sogar nach dem Passwort gefragt, aber danach geht es nicht weiter...
Kann mir einer helfen?
Rufst Du das Skript mit sudo auf? Oder wieso wirst Du nach dem Passwort gefragt? | bash: ./<scriptname>: Keine Berechtigung
|
Das heißt, dass das Programm nicht ausführbar ist. Die spitzen Klammern hast Du dazugesponnen, oder?
ist die Lösung. Shebang brauchst Du wohl nicht - das ist alles super portabel. Spitze Klammern sind in den Shells signifikante Zeichen, benutze was anderes wie GROSSSCHREIBUNG oder fett oder kursiv oder gelb auf schwarz und den richtigen Namen.
|
lesenv
(Themenstarter)
Anmeldungsdatum: 11. Mai 2015
Beiträge: 6
|
Oh Mann, wie peinlich...
Ich habe die Shebang-Zeile reingeschrieben und es flutscht.
😳 Vielen Dank!
|
lesenv
(Themenstarter)
Anmeldungsdatum: 11. Mai 2015
Beiträge: 6
|
@user unknown: Deinen Post habe ich nur schwer verstehen können.user unknown schrieb: Welche Shell soll denn darüber stolpern? Eine Pythonshell vielleicht?
nein, die /bin/bash Rufst Du das Skript mit sudo auf? Oder wieso wirst Du nach dem Passwort gefragt?
weil im Skript die Zeile sudo make install steht | bash: ./<scriptname>: Keine Berechtigung
|
Das heißt, dass das Programm nicht ausführbar ist. Die spitzen Klammern hast Du dazugesponnen, oder?
Doch, die Datei war schon ausführbar. Welche spitzen Klammern? Die kenne ich aus HTML und PHP, aber nicht aus bash Spitze Klammern sind in den Shells signifikante Zeichen, benutze was anderes wie GROSSSCHREIBUNG oder fett oder kursiv oder gelb auf schwarz und den richtigen Namen.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12822
|
lesenv schrieb: @user unknown: Deinen Post habe ich nur schwer verstehen können.
Ich glaube, das liegt daran, dass er Dir antwortet, sich aber auf ein Posting von WinXP to Edgy bezieht. Daher die Verwirrung.
|
Kriev
Anmeldungsdatum: 12. Dezember 2010
Beiträge: 349
Wohnort: Unter dem Tisch
|
user unknown schrieb: [...] Die spitzen Klammern hast Du dazugesponnen, oder?
Die kammen von meiner Antwort, wenn ich jeweils etwas erkläre, oder ein Beispielschnippsel jemandem schreibe verwende ich <wasauchimmer> als Platzhalter für das was tatsächlich rein kommt. Bis jetzt hat das auch jeder verstanden der das mal so gesehen hat. 😉 Cheers! - Zodiak
|
wxpte
Anmeldungsdatum: 20. Januar 2007
Beiträge: 1175
Wohnort: Schäl Sick
|
So ist es. ☺ Die Syntax hatte ich nur konsequent übernommen.
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17552
Wohnort: Berlin
|
Kriev schrieb: user unknown schrieb: [...] Die spitzen Klammern hast Du dazugesponnen, oder?
Die kammen von meiner Antwort, wenn ich jeweils etwas erkläre, oder ein Beispielschnippsel jemandem schreibe verwende ich <wasauchimmer> als Platzhalter für das was tatsächlich rein kommt. Bis jetzt hat das auch jeder verstanden der das mal so gesehen hat. 😉
Probier's mal ohne jede spitze Klammer. Versteht auch jeder. Wer sich mit > wertvolle Daten seine Dateien löscht, vielleicht nur still mitliest ohne sich je zu melden - oft die Mehrheit in Foren - wird sich womöglich schämen seinen Fehler das nicht erkannt zu haben bekannt zu machen. Beim Copy/Paste ist es auch nur störend. Wie machen es denn die man-pages?
| ls --help
Aufruf: ls [OPTION]... [DATEI]...
|
Eckige Klammern markieren Parameter als optional; Zeichenketten, die als Platzhalter stehen, in Großbuchstaben. Wozu einen weiteren Standard neben einem etablierten benutzen? In solchen Fällen ist Kreativität eine Untugend.
|
Kriev
Anmeldungsdatum: 12. Dezember 2010
Beiträge: 349
Wohnort: Unter dem Tisch
|
user unknown schrieb: Kriev schrieb: user unknown schrieb: [...] Die spitzen Klammern hast Du dazugesponnen, oder?
Die kammen von meiner Antwort, wenn ich jeweils etwas erkläre, oder ein Beispielschnippsel jemandem schreibe verwende ich <wasauchimmer> als Platzhalter für das was tatsächlich rein kommt. Bis jetzt hat das auch jeder verstanden der das mal so gesehen hat. 😉
Probier's mal ohne jede spitze Klammer. Versteht auch jeder. Wer sich mit > wertvolle Daten seine Dateien löscht, vielleicht nur still mitliest ohne sich je zu melden - oft die Mehrheit in Foren - wird sich womöglich schämen seinen Fehler das nicht erkannt zu haben bekannt zu machen. Beim Copy/Paste ist es auch nur störend. Wie machen es denn die man-pages?
| ls --help
Aufruf: ls [OPTION]... [DATEI]...
|
Eckige Klammern markieren Parameter als optional; Zeichenketten, die als Platzhalter stehen, in Großbuchstaben. Wozu einen weiteren Standard neben einem etablierten benutzen? In solchen Fällen ist Kreativität eine Untugend.
Dann möchte ich höflich darauf hinweisen das ich genau diese pseudo-Syntax immer wieder hier im Wiki sehe. Beispiel. Ich für meinen Teil hatte dies noch nie falsch verstanden. Eben so wenig habe ich jemanden getroffen der dies falsch interpretiert hat. Cheers! - Kriev
|