Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

07.08.2007, 13:43

[gelöst] Shellskript läuft nicht

moins,

ich habe folgendes kleines script:

Quellcode

1
2
3
4
5
#!/bin/bash
PATH=$PATH':/usr/bin:/usr/local/bin:/sbin'
DIR='/srv/www/logs/'
cd /srv/www/logs/
echo $?


Es kommt immer die Fehlermeldung No such file or directory. Führe ich denBefehl direkt auf der Shell aus geht es. in $? steht 2. Da Verzeichnis IST auch existent.
ich habe da noch ein anderes Skript, das ganz ähnlich ist und es funktioniert tadellos:

Quellcode

1
2
3
4
#!/bin/bash
PATH=$PATH':/usr/bin:/usr/local/bin:/sbin'
cd /var/spool/cron/tabs/
rm wwwrun


why??? ziemlich ratlos

2

07.08.2007, 13:47

RE: Shellscript

Dann debugge doch dein Script:

Jeden einzelnen Befehl im Script laufen lassen und auf die Stelle an der der Fehler auftritt warten
Hiroshima 45 .. Tschernobyl 86 .. Windows 95
Letzte Worte des PC's: "Starte Windows 95"

Kunde : Ich habe Windoze 95
Techniker: Ja?
Kunde : Mein Rechner funktioniert nicht.
Techniker: Das sagten sie bereits.

3

07.08.2007, 13:57

der Fehler taucht erst auf wenn das skript an der Zeile mit cd angekommen ist.

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

4

07.08.2007, 14:00

Schaetzungsweise hat der User, der das Script ausfuehrt, keine Rechte um nach /srv/www/logs/ zu wechseln.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

6

07.08.2007, 14:09

Dann gib in einer Konsole

Quellcode

1
cd /srv/www/logs/
ein und poste die Ausgabe hier bzw. nutze

Quellcode

1
#!/bin/bash -x
als Shebang und starte das Script.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

7

07.08.2007, 14:16

die ausführung auf der konsole klappte, wie gesagt. ich habe das skript welches funktionierte nun auf den neuen Namen kopiert und es geht. kann dann mit dem weiterarbeiten.

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

8

07.08.2007, 14:21

Schreib trotzdem mal "#!/bin/bash -x" als Interpreter in der nicht funktionierende Script, starte es und poste die Ausgabe hier.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

9

07.08.2007, 14:36

chmod +x script
./script
Just because an OS holds 90% of the market doesn`t mean it`s superior.
Remember 90% of all animals are insects.

Wer sucht der findet..

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »chieps« (07.08.2007, 14:36)


10

07.08.2007, 14:42

Zitat

Original von chieps
chmod +x script


Das nutzt ihm nichts, er kann das Script ja ausführen!
Hiroshima 45 .. Tschernobyl 86 .. Windows 95
Letzte Worte des PC's: "Starte Windows 95"

Kunde : Ich habe Windoze 95
Techniker: Ja?
Kunde : Mein Rechner funktioniert nicht.
Techniker: Das sagten sie bereits.

11

07.08.2007, 15:13

Zitat

Schreib trotzdem mal "#!/bin/bash -x" als Interpreter in der nicht funktionierende Script, starte es und poste die Ausgabe hier.


Nochmal der Code:

Quellcode

1
2
#!/bin/bash -x
cd /srv/www/logs

Dies bei der Ausführung

Quellcode

1
2
/bin/bash test.sh : 
No such file or directoryww/logs

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

12

07.08.2007, 15:21

starte das script ohne /bin/bash davor, sonst hebelst du das -x ja wieder aus oder du machst
/bin/bash -x ./test.sh

und cd /srv/www/logs/ funktioniert in der konsole, bist du da sicher?

befindet sich /srv auf einer localen platte oder ist das vielleicht ein remote-filesystem (zb nfs)?
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »linuxerr« (07.08.2007, 15:22)


13

07.08.2007, 15:38

Quellcode

1
2
3
  /bin/bash -x ./test.sh
+ cd $'/srv/www/logs\r'
: No such file or directory/www/logs


ich vermute mal das es der zeilenumbruch ist. das skript ist in windows unter eclipse erstellt und via ssh+svn auf linux transferiert worden.

z-shell

unregistriert

14

07.08.2007, 15:42

Du hast doch im ersten script

Quellcode

1
DIR=/srv/www/logs

stehen gehabt. Geht denn

Quellcode

1
cd $DIR 
?

15

07.08.2007, 15:57

Zitat

Original von z-shell
Du hast doch im ersten script

Quellcode

1
DIR=/srv/www/logs

stehen gehabt. Geht denn

Quellcode

1
cd $DIR 
?


nein. das skript ist jetzt ganz simpel so:

Quellcode

1
2
#!/bin/bash
cd /srv/www/logs
funktioniert trotzdem nich.
alle haben alle rechte, auch aufs verzeichnis.
Der befehl direkt auf der shellausgeführt, funktioniert.

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

16

07.08.2007, 17:09

du musst die zeilenumbrüche in unixzeilenumbrüche umwandeln!!!
nimm zb dos2unix
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

17

07.08.2007, 17:29

Hoert sich danach an als enthielte das Script ^M (Zeilenumbrueche von Windows). Entferne diese.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

Thema bewerten