was ist das für ein script?
Alain
- programmiertechnik
0 Andreas Korthaus0 Alain0 uepselon0 Eidgenosse
0 i-netlab
Guten Tag,
Ich bin daran eine datei namens netscape.cfg zu konvigurieren .
Bei der such nach einem program dafür bin ich auf dieses script gestossen.
Die Frage ist nur was ist das für ein skript und wie bring ich es zum laufen?
Hier ist das skript komplett zu sehen:
http://www.splode.com/~friedman/software/scripts/src/mozwhack
--------------------------------
das skript fängt mit
#! /bin/sh
an.
Grüsse vom Alain
Hallo!
#! /bin/sh
Das ist vermutlich ein Unix-Shell Script, sowas ähnliches wie eine batch-Datei(.bat) unter Windows.
Grüße
Andreas
Moin,
Das ist vermutlich ein Unix-Shell Script, sowas ähnliches wie eine batch-Datei(.bat) unter Windows.
Wie soll ich das script.?? (exentsion?)benennen,
wenn ich es hochlade auf den unixserver?
Grüsse vom Alain
Hi,
Wie soll ich das script.?? (exentsion?)benennen,
wenn ich es hochlade auf den unixserver?
Versuchs mal mit .sh
Gruß
ueps
use Mosche;
Wie soll ich das script.?? (exentsion?)benennen,
wenn ich es hochlade auf den unixserver?Versuchs mal mit .sh
Oder .sdkjhsdflkhsdflkjsdf
Mal im ernst: bei Unix hat die Dateiendung keinen Einfluss darauf, wie die Datei zu benutzen ist. Wichtig ist, dass sie ausführbar gemacht wird oder als Argument der Bash übergeben wird
$ sh mein_script
oder
$ chmod +x mein_script
$ mein_script
$ ./mein_script
use Tschoe qw(Matti);
Hi,
Versuchs mal mit .sh
Oder .sdkjhsdflkhsdflkjsdf
Geht auch, die Frage ist nur ob es Sinn macht? Die Endung sollte dem User etwas über den Inhalt aussagen, oder etwa nicht?
Gruß
ueps
Hallo,
Hi,
Versuchs mal mit .sh
war wircklich ernst gemeint die Frage mit der exstension ,
denn im Windows ist es ja üblich dass fast jede datei eine bestimmte exstension besitzt
um zu wissen wie es das ding ausführen soll.
Dieses skript hat eben keine-eventuell wär ja auch .vbs gegangen,wer weiss?!
Aber bei unix bin ich kein hirsch um zu wissen wie jetzt das skript ansprechbar gemacht wird,
desshalb die für manchen etwas naive Frage.
Anyway thx
Gruss vom Alain
Hallo!
Versuchs mal mit .sh
war wircklich ernst gemeint die Frage mit der exstension ,
denn im Windows ist es ja üblich dass fast jede datei eine bestimmte exstension besitzt
um zu wissen wie es das ding ausführen soll.
Das ist klar, und die Antworten waren ebenfalls ernst gemeint.
Dieses skript hat eben keine-eventuell wär ja auch .vbs gegangen,wer weiss?!
Das Script braucht keine! Du kannst irgendwas oder auch gar nichst nehmen, Unix holt sich die Info darüber welches Programm die Datei ausführen soll aus der ersten Zeile! Der Name dient in erster Linie nur für den Anwender, damit er im Filesystem sieht was das für eine Datei ist.
Aber bei unix bin ich kein hirsch um zu wissen wie jetzt das skript ansprechbar gemacht wird,
desshalb die für manchen etwas naive Frage.
Wie gesagt, Du hast Deine Antwort bereits erhalten, oder? Hast Du es mal probiert?
Vielleicht interessiert Dich mal
http://www.selflinux.de/html/Shellprogrammierung03.html
http://www.selflinux.de/html/Shellprogrammierung.html
http://www.selflinux.de/
Viele Grüße
Andreas
PS: "selflinux.de" macht sich, das ist schon wieder deutlich umfangreicher geworden!
Hallo!
Versuchs mal mit .sh
Also liebe leut,
ich kann euch beruhigen,das script läuft NICHT auf unix.
Nach stunden langen suchen um eine .cfg datei von netscape ums genau zu sagen die netscape.cfg datei
zu konfigurieren,die angeblich für haubt einstellungen zuständig ist,hab ich die suche entäuschend abgebrochen und mich
damit zufrieden gegeben was nun habe,nähmlich das gleiche wie bereits vor stunden oder tagen?
Ich denke das wird nicht das erste und letzte mal sein,worin ich mir die zähne ausgebissen habe.
Netscape (4.sowieso) machts möglich :(
Grüsse vom Alain
Moin!
ich kann euch beruhigen,das script läuft NICHT auf unix.
Kann ich gar nicht glauben. Alles, was im Originalscript drinsteht, zeigt ganz eindeutig auf Unix bzw. Linux.
Mögliche Fehlerquellen:
1. Du hast das Skript nicht ausführbar gemacht. "chmod 755 skriptname"
2. Du hast das Skript falsch aufgerufen: nicht "skriptname", sondern "./skriptname"
3. Es sollte vielleicht #!/bin/bash statt #! /bin/bash heißen.
4. Die bash ist nicht in /bin/bash.
- Sven Rautenberg
Hallo Sven,
- Du hast das Skript falsch aufgerufen: nicht
"skriptname", sondern "./skriptname"
Nur als Info: ./scriptname ist nur noetig, wenn
. nicht in PATH drin steht.
- Es sollte vielleicht #!/bin/bash statt #! /bin/bash
heißen.
Nein, das ist egal.
Gruesse,
CK
Moin!
- Du hast das Skript falsch aufgerufen: nicht
"skriptname", sondern "./skriptname"Nur als Info: ./scriptname ist nur noetig, wenn
. nicht in PATH drin steht.
Es kann durchaus Vorteile haben, wenn das _nicht_ drinsteht. Dann fällt man beispielsweise nicht auf Fake-Programme rein, die mit Systemkommandos identische Namen haben, aber zufällig im aktuellen Verzeichnis stehen.
Ja, die Suchreihenfolge im PATH wird auch eine Rolle spielen, aber das Argument zieht - zumindest bei root.
- Es sollte vielleicht #!/bin/bash statt #! /bin/bash
heißen.Nein, das ist egal.
Wieder was gelernt. :)
- Sven Rautenberg
Hallo Sven,
Es kann durchaus Vorteile haben, wenn das
_nicht_ drinsteht.
Habe ich ja nicht bestritten :) Es war ein reiner
Sach-Hinweis.
Gruesse,
CK
Hallo Sven,
Mögliche Fehlerquellen:
- Du hast das Skript nicht ausführbar gemacht. "chmod 755 skriptname"
nö war auf chmod 755!
- Du hast das Skript falsch aufgerufen: nicht "skriptname", sondern "./skriptname"
aufgerufen? wie denn so etwa http://www.blabla.de/./script ?
oder so http://www.blabla.de/script
also ich hatte es auf script.pl oder script.cgi probiert ging aber auch nicht statt dessen kam
ein 500 error meldung.
Ansonsten wenn ich das script so aufrufe ohne exstension dann wird einfach die text version angezeigt.
- Es sollte vielleicht #!/bin/bash statt #! /bin/bash heißen.
hab ich auch probiert obwohl es #!/bin/sh heisst.
Müsste da vielleicht noch ein -D stehen also so #!/bin/bash -D
- Die bash ist nicht in /bin/bash.
Zum script selbst,generiert es das netscape.cfg file selbst oder muss das auch hochgeladen sein?
Grüsse vom Alain
use Mosche;
aufgerufen? wie denn so etwa http://www.blabla.de/./script ?
oder so http://www.blabla.de/script
nein, auf der Konsole. Wenn du es aber über HTTP aufrufen willst, schreib an den Anfang des Scriptes (nach #!)
echo Content-Type: text/plain
echo
also ich hatte es auf script.pl oder script.cgi probiert ging aber auch nicht statt dessen kam
ein 500 error meldung.
Weil kein Header ausgegeben wurde. Das kannst du mit dem Befehl oben abstellen.
use Tschoe qw(Matti);
Moin!
- Du hast das Skript nicht ausführbar gemacht. "chmod 755 skriptname"
nö war auf chmod 755!
- Du hast das Skript falsch aufgerufen: nicht "skriptname", sondern "./skriptname"
aufgerufen? wie denn so etwa http://www.blabla.de/./script ?
oder so http://www.blabla.de/script
Nö, du machst eine Kommandozeile auf, gehts in das Verzeichnis, in dem das Script abgelegt ist, und tippst "./skriptname" ein und drückst Return. Wenn du dem Skript eine Endung gegeben hast, dann gehört die mit zum Skriptnamen!
Das Skript ist wie ein sonstiger Befehl zu betrachten: Die Eingabe des Dateinamens startet das Programm oder das Skript. Nur sind benutzereigene Skripte nicht unbedingt sofort ausführbar (deswegen chmod 755), und die PATH-Angabe enthält nicht zwingend das lokale Verzeichnis (deswegen "./" davor).
also ich hatte es auf script.pl oder script.cgi probiert ging aber auch nicht statt dessen kam
ein 500 error meldung.
Mit _was_ versuchst du, das Skript aufzurufen? Mit dem Browser? Örks!
Das Skript ist ein Shellskript - es erfordert zwingend die Kommandozeile zur Ausführung. Du mußt es herunterladen, auf deiner lokalen Linux-Kiste abspeichern, ausführbar machen und dann starten. Ohne weitere Parameter wird dir daraufhin die Hilfeseite des Skriptes angezeigt, die auflistet, welche Kommandozeilenparameter du angeben mußt, um irgendwas sinnvolles zu erreichen.
- Sven Rautenberg
use Mosche;
Das Skript ist ein Shellskript - es erfordert zwingend die Kommandozeile zur Ausführung.
Nein. Es erfordert zwingend einen Interpreter, der hier nun mal die Shell ist. Dieses Script ist im Prinzip nichts anderes als ein Perl-Script. Eine Kommandozeile, wie du sie meinst, ist _nicht_ zwingend notwendig (ich kann das Script auch ohne Kommandozeile laufen lassen).
Du mußt es herunterladen, auf deiner lokalen Linux-Kiste abspeichern, ausführbar machen und dann starten. Ohne weitere Parameter wird dir daraufhin die Hilfeseite des Skriptes angezeigt, die auflistet, welche Kommandozeilenparameter du angeben mußt, um irgendwas sinnvolles zu erreichen.
Du vergisst, dass man es entsprechend umschreiben kann, damit man es über CGI aufrufen kann (siehe auch mein anderes Posting).
use Tschoe qw(Matti);
Moin!
Das Skript ist ein Shellskript - es erfordert zwingend die Kommandozeile zur Ausführung.
Nein. Es erfordert zwingend einen Interpreter, der hier nun mal die Shell ist. Dieses Script ist im Prinzip nichts anderes als ein Perl-Script. Eine Kommandozeile, wie du sie meinst, ist _nicht_ zwingend notwendig (ich kann das Script auch ohne Kommandozeile laufen lassen).
Ja, aber dann kriegst du keine Kommandozeilenparameter übergeben, die für den Ablauf dieses konkreten Skriptes erforderlich sind.
Du mußt es herunterladen, auf deiner lokalen Linux-Kiste abspeichern, ausführbar machen und dann starten. Ohne weitere Parameter wird dir daraufhin die Hilfeseite des Skriptes angezeigt, die auflistet, welche Kommandozeilenparameter du angeben mußt, um irgendwas sinnvolles zu erreichen.
Du vergisst, dass man es entsprechend umschreiben kann, damit man es über CGI aufrufen kann (siehe auch mein anderes Posting).
Ich halte die Ausführung als CGI für kaum sinnvoll, weil es sich um ein Skript handelt, welches die Netscape/Mozilla-Konfigurationsdatei anpassen soll. Sowas macht man in der Regel nur, wenn man auch Netscape/Mozilla laufen läßt, und man macht es auf dem Rechner, den man zum Surfen benutzt, nicht auf dem Server.
Ich habe nicht generell diskutiert, was man mit Shellskripten machen kann, sondern was man mit diesem Skript zu tun hat. Hast du das Skript wenigstens mal kurz angesehen? Dann wüßtest du, was los ist.
- Sven Rautenberg
use Mosche;
Ja, aber dann kriegst du keine Kommandozeilenparameter übergeben, die für den Ablauf dieses konkreten Skriptes erforderlich sind.
Doch, indem du sie einfach als Query-String übergibst (bei einigen Webservern, zB Apache). STDIN übergibst du per post.
Ist klar, dass wir nichtvon sinnvoll reden, es ist nur prinzipiell möglich.
"Ohne Kommandozeile" ist zB auch, wenn er sich ein Programm schreibt, welches das Script per system() aufruft. Dann hat er zwar die Shell (welches das Script interpretiert), aber u.U. keine Kommandozeile.
use Tschoe qw(Matti);
hallo ihr beide,
Also nochmal zum skript,
ich habs ja zum laufen gekriegt auf unix,aber das nützt mir nicht viel weil das skript den header nicht rausgibt
error "leeres dokument...blabla"
Desshalb müsste ich vermutlich wie sven schon sagte es auf dem rechner per perl aufrufen,aber das perl etc. ist ja wieder ne andere geschichte.
Die server_test software von xitami mit perl hab ich ja auf meinem win98 rechner,aber nie wircklich getestet.
Grüsse vom Alain
Hallo Alain,
Unix interessiert die Dateiendung nicht. Maßgeblich ist immer die erste Zeile, die besagt, was das System damit anfangen soll - hier eben die Shell als Interpreter nehmen. Nenn das Skript, wie Du willst mit einer Erweiterung, wie Du willst, oder auch keiner. Sinnvoll, um beim Listing schon zu erkennen, was es ist, ist jedoch tatsächlich das .sh.
Gruß
Eidgenosse
hi,
Ich bin daran eine datei namens netscape.cfg zu konvigurieren .
Bei der such nach einem program dafür bin ich auf dieses script gestossen.
Die Frage ist nur was ist das für ein skript und wie bring ich es zum laufen?
Hier ist das skript komplett zu sehen:
http://www.splode.com/~friedman/software/scripts/src/mozwhack
Grundsätzlich solltest du dich mit einer solchen Frage an den Author des Scripts selbst wenden!
Weil: Stell dir mal folgendes vor: Du hast ein Script geschrieben und veröffentlicht. Zufällig siehst du wie Drittpersonen in einem öffentlichen Forum über _dein_ Script diskutieren.
Rolf
use Mosche;
Stell dir mal folgendes vor: Du hast ein Script geschrieben und veröffentlicht. Zufällig siehst du wie Drittpersonen in einem öffentlichen Forum über _dein_ Script diskutieren.
Da ist doch nichts dabei, ich würde mich als Autor sogar darüber freuen, wenn über mein Script geredet wird (meine Ruhmsucht :-)). Solange dass nicht in Flames ausartet ...
use Tschoe qw(Matti);