Liste von Dateinamen mit Shell-Script

thefaxx

Mitglied
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:
#!/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?
 
Du koenntest sowas machen:
Bash:
#!/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.
 
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:
/var/www/domain.de/php/  /var/www/domain.de/
http://www.domain.de/php/test1.php
http://www.domain.de/php/test2.php
/var/www/domain.de/
 
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?
 
Zuletzt bearbeitet:
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ß
 
Zurück