tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
467
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    thefaxx thefaxx ist offline Mitglied Silber
    Registriert seit
    Jun 2005
    Beiträge
    74
    Hi,

    ich möchte via Shell-Script alle PHP-Dateien in einem bestimmten Verzeichnis auf meinem Server ausführen.

    So habe ich es versucht:
    Code :
    1
    2
    3
    4
    5
    
    #!/bin/sh
    foreach filename in /var/www/domain.de/httpdocs/php/*
    do
      wget http://www.domain.de/$filename > /dev/null
    done;

    Problem ist, dass in der Variable $filename der gesamte Pfad zur Datei gespeichert wird und nicht nur der Dateiname. Wie kann ich das verhindern bzw. was gibt es noch für Möglichkeiten?
     

  2. #2
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Du koenntest sowas machen:
    Code bash:
    1
    2
    3
    4
    5
    6
    7
    
    #!/bin/sh
    pushd /var/www/domain.de/httpdocs/php/
    foreach filename in *
    do
      wget http://www.domain.de/$filename > /dev/null
    done;
    popd
    pushd ist cd recht aehnlich. Jedoch haelt es in einem Stack fest durch welche es wechselt. Mit popd (siehe Ende des Scripts) kannst Du dann wieder zurueckkehren wo Du herkamst, ohne wissen zu muessen wo das war.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  3. #3
    thefaxx thefaxx ist offline Mitglied Silber
    Registriert seit
    Jun 2005
    Beiträge
    74
    Funktioniert schon mal super vielen Dank.
    Wenn ich mir die Zeilen mit echo ausgeben lassen, zeigt er allerdings auch den Pfad an den er mit pushd aufgerufen hat. Lässt sich die Ausgabe unterdrücken?

    Das gibt er mir aus:
    Code :
    1
    2
    3
    4
    
    /var/www/domain.de/php/  /var/www/domain.de/
    [url]http://www.domain.de/php/test1.php[/url]
    [url]http://www.domain.de/php/test2.php[/url]
    /var/www/domain.de/
     

  4. #4
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Haeng einfach > /dev/null hinter pushd und popd, dann wird diese Ausgabe in's Nirwana geschickt.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  5. #5
    thefaxx thefaxx ist offline Mitglied Silber
    Registriert seit
    Jun 2005
    Beiträge
    74
    Super genial. Danke dir!

    Jetzt ist mir doch noch was aufgefallen.
    Wenn die Dateien mit dem Script aufgerufen werden, wird eine Datei mit dem gleichen
    Dateinamen erzeugt und die Endung wird mit .1 erweitert. Also z.B. test1.php.1.
    Woran könnte das liegen?
    Geändert von thefaxx (23.03.09 um 10:23 Uhr)
     

  6. #6
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Zitat Zitat von thefaxx Beitrag anzeigen
    Super genial. Danke dir!

    Jetzt ist mir doch noch was aufgefallen.
    Wenn die Dateien mit dem Script aufgerufen werden, wird eine Datei mit dem gleichen
    Dateinamen erzeugt und die Endung wird mit .1 erweitert. Also z.B. test1.php.1.
    Woran könnte das liegen?
    Das liegt einfach an der Arbeitsweise von wget. Du mußt wget einfach mit den richtigen Optionen aufrufen - siehe man wget.

    Wenn du die PHP Skripte nur ausführen und nicht runterladen willst, dann verwende einfach die Option -O /dev/null.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Shell Script und PHP
    Von X-Press im Forum PHP
    Antworten: 2
    Letzter Beitrag: 26.09.07, 10:00
  2. Antworten: 3
    Letzter Beitrag: 04.06.07, 07:43
  3. Dateinamen in Ordner auslesen mit VB-Script
    Von Choco2 im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 11.08.06, 07:52
  4. Shell-Script funktioniert nicht als Script
    Von Mindwinder im Forum Linux & Unix
    Antworten: 15
    Letzter Beitrag: 03.05.06, 15:29
  5. Antworten: 2
    Letzter Beitrag: 27.12.04, 16:04