Hallo, ich habe bei meiner SuSE 8.2 Professional Edition ein Problem mit Shellskripten. Bei mir funktionieren die nur, wenn ich sie mit sh Skirptname oder bash Skriptname starte und nicht wenn ich ./Skriptname eingebe. Das einleitende #/bin/sh ist auch enthalten. Wenn ich versuche mit ./Skriptname ein Skript zu starten bekomme ich immer als Fehlermeldung: bash: ./Skriptname: Keine Berechtigung. Beim Start mit bash Skriptname kommt dieser Fehler nicht. Das hat leider auch die blöde Folge, dass ich jedes fremde Skript so umändern muss, dass es andere Skripte nicht mit ./Skript sondern bash Skript aufruft. Woran kann das liegen. philipp
* Philipp Otte
Hallo, ich habe bei meiner SuSE 8.2 Professional Edition ein Problem mit Shellskripten. Bei mir funktionieren die nur, wenn ich sie mit sh Skirptname oder bash Skriptname starte und nicht wenn ich ./Skriptname eingebe. Das einleitende #/bin/sh ist auch enthalten. Wenn ich versuche mit ./Skriptname ein Skript zu starten bekomme ich immer als Fehlermeldung: bash: ./Skriptname: Keine Berechtigung. Beim Start mit bash Skriptname kommt dieser Fehler nicht. Das hat leider auch die blöde Folge, dass ich jedes fremde Skript so umändern muss, dass es andere Skripte nicht mit ./Skript sondern bash Skript aufruft.
ist die Datei ausführbar (chmox a+x <file>)? Gruß, Bernhard -- _________ http://www.bwalle.de _________________________________________________ Bohrer für Öl? Sie meinen, in die Erde bohren und versuchen Öl zu finden? Sie sind verrückt!. -- Bohr-Arbeiter vor dem ersten Öl-Bohr-Projekt (1859)
Am Son, 2004-05-09 um 14.28 schrieb Bernhard Walle:
* Philipp Otte
[2004-05-09 14:18]: Hallo, ich habe bei meiner SuSE 8.2 Professional Edition ein Problem mit Shellskripten. Bei mir funktionieren die nur, wenn ich sie mit sh Skirptname oder bash Skriptname starte und nicht wenn ich ./Skriptname eingebe. Das einleitende #/bin/sh ist auch enthalten. Wenn ich versuche mit ./Skriptname ein Skript zu starten bekomme ich immer als Fehlermeldung: bash: ./Skriptname: Keine Berechtigung. Beim Start mit bash Skriptname kommt dieser Fehler nicht. Das hat leider auch die blöde Folge, dass ich jedes fremde Skript so umändern muss, dass es andere Skripte nicht mit ./Skript sondern bash Skript aufruft.
ist die Datei ausführbar (chmox a+x <file>)?
Gruß, Bernhard Ja, die Datei ist ausführbar.
Am 09.05.2004 14:34 schrieb Philipp Otte:
Am Son, 2004-05-09 um 14.28 schrieb Bernhard Walle:
* Philipp Otte
[2004-05-09 14:18]:
Wenn ich versuche mit ./Skriptname ein Skript zu starten bekomme ich immer als Fehlermeldung: bash: ./Skriptname: Keine Berechtigung. Beim Start mit bash Skriptname kommt dieser Fehler nicht. Das hat leider auch die blöde Folge, dass ich jedes fremde Skript so umändern muss, dass es andere Skripte nicht mit ./Skript sondern bash Skript aufruft.
ist die Datei ausführbar (chmox a+x <file>)?
Ja, die Datei ist ausführbar.
Poste doch mal die Ausgabe von ls -ald <scriptname> ls -ald . und id -a Gruß Martin -- Martin Knipper www : http://www.mk-os.de Mail : knipper@mk-os.de Random Signature: ----------------- while( !asleep() ) sheep++;
Poste doch mal die Ausgabe von
ls -ald <scriptname>
philipp@philipp:~/hydrixOS/src> ls -ald makeits -rwxr-xr-x 1 philipp users 29 2004-05-05 23:33 makeits
ls -ald .
philipp@philipp:~/hydrixOS/src> ls -ald . drwxr-xr-x 8 philipp hydrix 512 2004-05-09 15:06 .
und
id -a
philipp@philipp:~/hydrixOS/src> id -a uid=500(philipp) gid=100(users) Gruppen=100(users),14(uucp),16(dialout),17(audio),33(video),500(hydrix) philipp
Am 09.05.2004 15:09 schrieb Philipp Otte:
Poste doch mal die Ausgabe von
ls -ald <scriptname>
philipp@philipp:~/hydrixOS/src> ls -ald makeits -rwxr-xr-x 1 philipp users 29 2004-05-05 23:33 makeits
ls -ald .
philipp@philipp:~/hydrixOS/src> ls -ald . drwxr-xr-x 8 philipp hydrix 512 2004-05-09 15:06 .
und
id -a
philipp@philipp:~/hydrixOS/src> id -a uid=500(philipp) gid=100(users) Gruppen=100(users),14(uucp),16(dialout),17(audio),33(video),500(hydrix)
Hmmm, sieht alles gut aus. Lüfte doch mal das Geheimnis des Inhalts von makeits cat -nE makeits Gruß Martin -- Martin Knipper www : http://www.mk-os.de Mail : knipper@mk-os.de Random Signature: ----------------- while( !asleep() ) sheep++;
On Sun 09. May 14:18:43, Philipp Otte wrote:
Hallo, ich habe bei meiner SuSE 8.2 Professional Edition ein Problem mit Shellskripten. Bei mir funktionieren die nur, wenn ich sie mit sh Skirptname oder bash Skriptname starte und nicht wenn ich ./Skriptname eingebe. Das einleitende #/bin/sh ist auch enthalten.
IMHO muss das #!/bin/sh heissen. Gruß, Holger -- The object of war is not to die for your country but to make the other bastard die for his. --General G. C. Patton
Am Son, 2004-05-09 um 14.36 schrieb Holger Macht:
On Sun 09. May 14:18:43, Philipp Otte wrote:
Hallo, ich habe bei meiner SuSE 8.2 Professional Edition ein Problem mit Shellskripten. Bei mir funktionieren die nur, wenn ich sie mit sh Skirptname oder bash Skriptname starte und nicht wenn ich ./Skriptname eingebe. Das einleitende #/bin/sh ist auch enthalten.
IMHO muss das #!/bin/sh heissen.
Gruß, Holger
So vermehren sich die Fehlermeldungen nur auf das Doppelte. Hat also leider nichts gebracht.
Philipp Otte wrote:
Am Son, 2004-05-09 um 14.36 schrieb Holger Macht:
On Sun 09. May 14:18:43, Philipp Otte wrote:
Hallo, ich habe bei meiner SuSE 8.2 Professional Edition ein Problem mit Shellskripten. Bei mir funktionieren die nur, wenn ich sie mit sh Skirptname oder bash Skriptname starte und nicht wenn ich ./Skriptname eingebe. Das einleitende #/bin/sh ist auch enthalten.
IMHO muss das #!/bin/sh heissen.
So vermehren sich die Fehlermeldungen nur auf das Doppelte. Hat also leider nichts gebracht.
Es muss definitiv #!/bin/sh heißen. Ohne das Ausrufezeichen ist es nur ein Kommentar. Was genau für Fehlermeldungen kommen denn, wenn du im Verzeichnis das Skript mit ./<Skriptname> aufrufst? Gruß Björn -- "Humor ist einfach eine komische Art, ernst zu sein" -- Peter Ustinov (16.04.1921 - 28.03.2004)
On Sun, 2004-05-09 at 14:18, Philipp Otte wrote:
Bei mir funktionieren die nur, wenn ich sie mit sh Skirptname oder bash Skriptname starte und nicht wenn ich ./Skriptname eingebe. Das einleitende #/bin/sh ist auch enthalten. es muss sicher #!/bin/sh heissen, ansonsten handelt es sich um einen kommentar. diese zeile MUSS die erste im skript-file sein (wenn das file mit ./skriptname aufrufbar sein soll)!!! Das hat leider auch die blöde Folge, dass ich jedes fremde Skript so umändern muss, dass es andere Skripte nicht mit ./Skript sondern bash Skript aufruft.Woran kann das liegen.Wenn ich versuche mit ./Skriptname ein Skript zu starten bekomme ich immer als Fehlermeldung: bash: ./Skriptname: Keine Berechtigung. klingt als ob etwas mit den file-rechten nicht stimmt. sieh dir mal man chmod (das skript muss als ausführbar gesetzt sein) und evtl. man chown (wenn das skript von einem anderen benutzer erstellt wurde) an. Beim Start mit bash Skriptname kommt dieser Fehler nicht. verwendest du die BASH oder eine andere Shell? ksh, ....
liegt das programm in einem verzeichnis, dass im pfad für ausführbare programme ist? versuch mal das folgende skript (hab es unter SuSE 8.2 geschrieben und verwende es, um einen heart-beat ping für ein netz zu machen): #!/bin/sh network=$1; if [ "$network" == "" ]; then network=192.168.0; fi; for i in `seq 1 1 254`; do ping -c 1 -w 1 -W 1 "$network"."$i" > /dev/null; if [ "$?" == 0 ]; then echo "Host "$network"."$i" is up"; else echo "Host "$network"."$i" is down"; fi; done; cu, martin
Am Sonntag, 9. Mai 2004 17:48 schrieb Martin:
On Sun, 2004-05-09 at 14:18, Philipp Otte wrote:
Bei mir funktionieren die nur, wenn ich sie mit sh Skirptname oder bash Skriptname starte und nicht wenn ich ./Skriptname eingebe. Das einleitende #/bin/sh ist auch enthalten.
es muss sicher #!/bin/sh heissen, ansonsten handelt es sich um einen kommentar. diese zeile MUSS die erste im skript-file sein (wenn das file mit ./skriptname aufrufbar sein soll)!!!
Nein, das stimmt nicht ganz. Wie schon erwähnt - /bin/sh ist der Standardinterpreter und wird genutzt, wenn nichts angegeben ist (z. B. im obigen Fall). Du brauchst die Shebang-Zeile nur dann, wenn Du sicherstellen willst, dass ein bestimmter Interpreter gestartet wird (z. B. /bin/csh oder /usr/bin/perl). Jan
On Sun, 2004-05-09 at 20:48, Jan Trippler wrote:
es muss sicher #!/bin/sh heissen, ansonsten handelt es sich um einen kommentar. diese zeile MUSS die erste im skript-file sein (wenn das file mit ./skriptname aufrufbar sein soll)!!!
Nein, das stimmt nicht ganz. Wie schon erwähnt - /bin/sh ist der Standardinterpreter und wird genutzt, wenn nichts angegeben ist (z. B. im obigen Fall). Du brauchst die Shebang-Zeile nur dann, wenn Du sicherstellen willst, dass ein bestimmter Interpreter gestartet wird (z. B. /bin/csh oder /usr/bin/perl).
ja, stimmt natürlich. hatte im kopft, dass das für alte Unix'e benötigt wird. hab mich jetzt etwas schlau gemacht und siehe da: es wird sogar empfohlen, den shebang wegzulassen, wenn das skript portabel sein soll. wird dagegen ein bestimmter interpreter verlangt, dann den shebang rein. man lernt nie aus. thx. cu, martin
Am Montag, 10. Mai 2004 01:01 schrieb Martin: [#!-Zeile]
ja, stimmt natürlich. hatte im kopft, dass das für alte Unix'e benötigt wird. [...]
Hmm, ich weiß nicht, von wie alt Du sprichst ;-) Ich habe 1991 mit Unix angefangen und die #!-Zeile erst viel viel später benutzt (ich kannte das Ding zum Anfang gar nicht :-) Jan
participants (7)
-
Bernhard Walle
-
Björn Berg
-
Holger Macht
-
Jan.Trippler@t-online.de
-
Martin
-
Martin Knipper
-
Philipp Otte