Ausführen aller Scripte in einem Verzeichniss
Ich möchte mit einem Script alle Scripte eines Unterverzeichnisses ausführen. Das ganze sieht etwa so aus. Ich hab ein Verzeichnis bla mit dem Script a Im Verzeichnis bla gibt es ein Unterverzeichnis bla Das Script a soll nun alle Scripte im Verzeichnis /bla/bla mit dem Zusatz & ausführen. Gibt es hier bei Linux einen Befehl, oder muß ich alle Scripte in /bla/bla per Hand im Script a angeben. Ich bräuchte also eine Art Befehl run oder start. Für jede Hilfe Dankbar Norbert -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Norbert Diernhofer <Diernhofer@Altmuehlnet.baynet.de> writes:
Ich möchte mit einem Script alle Scripte eines Unterverzeichnisses ausführen. Das ganze sieht etwa so aus.
Ich hab ein Verzeichnis bla mit dem Script a Im Verzeichnis bla gibt es ein Unterverzeichnis bla
Das Script a soll nun alle Scripte im Verzeichnis /bla/bla mit dem Zusatz & ausführen.
Gibt es hier bei Linux einen Befehl, oder muß ich alle Scripte in /bla/bla per Hand im Script a angeben.
Ich bräuchte also eine Art Befehl run oder start.
Bei Debian und RedHat gibt es dafuer das nette run-parts, das z.B. fuer Cron Jobs benutzt wird, damit die einzelnen Jobs uebersichtlich in einem Verzeichnis liegen. Das ganze ist ein kleines Shell Script, bei interesse kann ich es Dir gerne zuschicken. Tomas -- Tomas Duewiger td@music-satellite.de <A HREF="http://www.music-satellite.de/spearhead/"><A HREF="http://www.music-satellite.de/spearhead/</A">http://www.music-satellite.de/spearhead/</A</A>> -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
On 09-Sep-98 Tomas Duewiger wrote:
Verzeichnis liegen. Das ganze ist ein kleines Shell Script, bei interesse kann ich es Dir gerne zuschicken.
Mir bitte auch. Oder vielleicht doch gleich in die Liste. Danke, Heinz. -- E-Mail: pahlke@zedat.fu-berlin.de Date: 09-Sep-98 Time: 10:44:07 This message was sent by XFMail via S.u.S.E. Linux 5.0 -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
pahlke@zedat.fu-berlin.de writes:
On 09-Sep-98 Tomas Duewiger wrote:
Verzeichnis liegen. Das ganze ist ein kleines Shell Script, bei interesse kann ich es Dir gerne zuschicken.
Mir bitte auch. Oder vielleicht doch gleich in die Liste.
Ok, da es nun wirklich kein sehr grosses Script ist: -----hier abbeissen------- #!/bin/bash # run-parts - concept taken from Debian # keep going when something fails set +e if [ $# -lt 1 ]; then echo "Usage: run-parts <dir>" exit 1 fi if [ ! -d $1 ]; then echo "Not a directory: $1" exit 1 fi for i in $1/* ; do if [ -x $i ]; then $i fi done exit 0 ---------------END----------------- Tomas -- Tomas Duewiger td@music-satellite.de <A HREF="http://www.music-satellite.de/spearhead/"><A HREF="http://www.music-satellite.de/spearhead/</A">http://www.music-satellite.de/spearhead/</A</A>> -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
On Wed, 9 Sep 1998, Norbert Diernhofer wrote:
Das Script a soll nun alle Scripte im Verzeichnis /bla/bla mit dem Zusatz & ausführen.
----- #!/bin/csh -f # UNGETESTET et dir=/bla/bla set scriptlist=`find $dir -type f` set script foreach script ($scriptlist) $dir/$script & end ----- Tschau, Volker -- Volker Mueller <A HREF="mailto:volker.mueller@gmx.de">mailto:volker.mueller@gmx.de</A> / * / / / /| / <A HREF="http://www.in-berlin.de/user/flinux/"><A HREF="http://www.in-berlin.de/user/flinux/</A">http://www.in-berlin.de/user/flinux/</A</A>> / / /| / / / X Climb Now Work Later t n t w Try Not To Work /_ / / |/ /_/ / | -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Am Wed, 09 Sep 1998 schrieb Norbert Diernhofer:
Ich möchte mit einem Script alle Scripte eines Unterverzeichnisses ausführen. Das ganze sieht etwa so aus.
Ich hab ein Verzeichnis bla mit dem Script a Im Verzeichnis bla gibt es ein Unterverzeichnis bla
Das Script a soll nun alle Scripte im Verzeichnis /bla/bla mit dem Zusatz & ausführen.
Gibt es hier bei Linux einen Befehl, oder muß ich alle Scripte in /bla/bla per Hand im Script a angeben.
Ich bräuchte also eine Art Befehl run oder start.
Ich geh mal davon aus, dass Du alle ausführbare Dateien[1], die unterhalb von /bla/bla liegen[2], ausführen möchtest. Das macht die Sache leichter. [1] Also auch alle übersetzte C-Prog. ... [2] Es werden auch alle ausf. Dateien ausgeführt, die in ein Unterverzeichnis stehn. Z.B. in /bla/bla/bla Gib einfach for i in $(find /bla/bla -type f -perm -1); do $i & done ein. Kanst das natürlich auch in einem script schreiben. Pass aber auf, das es sich nicht selbst aufruft. Schau Dir den Befehl find im Manual und/oder info-Seiten an. man find info find ist ein sehr mächtiges Werkzeug. Die for...in...do...done Schleife ist Bestandteil der bash. Siehe: man bash Wofür brauchst Du das eigentlich? Gibt es da keine bessere Möglichkeiten? Ist eigentlich nicht so geschickt, alles auszuführen was in einem Verzeichnis steht. Da könnte auch mal ein Blödsinn hingelangen. Besser ist, wenns mehr nachvollziehbarer wird. Du könntest zumindest den find Befehl noch mit einem -name erweitern. Z.B.: find /bla/bla -name "cmd*" -type f -perm -1 Dann müssten alle Deine scripte mit cmd beginnen. Meist gibts noch bessere Lösungen. -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
At 09:50 09.09.98 +0200, you wrote:
Ich geh mal davon aus, dass Du alle ausführbare Dateien[1], die unterhalb von /bla/bla liegen[2], ausführen möchtest. Das macht die Sache leichter.
[1] Also auch alle übersetzte C-Prog. ... [2] Es werden auch alle ausf. Dateien ausgeführt, die in ein Unterverzeichnis stehn. Z.B. in /bla/bla/bla
Die Vorschlaege, die ich weiter oben gepostet (tolles Wort) habe, lassen sich mit einer Abfrage auf die Ausgabe von 'file' noch auf shellscripts einschraenken. Oder Du benennst shellscripts entsprechend: a.sh. Dann schreibst Du einfach for i in /bla/bla/*.sh do... -- R. Cirksena <r-c@gmx.net> powered by Linux -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
On Wed Sep 09 1998, Norbert Diernhofer wrote:
Das Script a soll nun alle Scripte im Verzeichnis /bla/bla mit dem Zusatz & ausführen.
perl -e '@d=</dir/*>; foreach $x(@d) { system "$x"; }' Wobei `dir' das Verzeichnis darstellt, in dem die Befehle liegen. -- __o Heinz Diehl, 68259 Mannheim, Germany (^..^) _`\<,_ *If you like them too, join the DMSL.* (^._.^) (_)/ (_) "The sun is shining. It must be Sunday!" ~~~~~~~~~~ [Alien Sex Fiend] -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
At 06:45 09.09.98 +0200, you wrote:
Ich möchte mit einem Script alle Scripte eines Unterverzeichnisses ausführen. Das ganze sieht etwa so aus.
Ich hab ein Verzeichnis bla mit dem Script a Im Verzeichnis bla gibt es ein Unterverzeichnis bla
Das Script a soll nun alle Scripte im Verzeichnis /bla/bla mit dem Zusatz & ausführen.
Gibt es hier bei Linux einen Befehl, oder muß ich alle Scripte in /bla/bla per Hand im Script a angeben.
Ich bräuchte also eine Art Befehl run oder start.
for i in /bla/bla/* do i & done oder rekursiv: find /bla/bla -type f -exec {} & \; oder: for i in `find $LOGDIR -maxdepth 1 -type f -size +100k` do i & done Ist alles aus dem Kopf, sollte aber gehen. Aber Achtung!!!! Es ist wichtig, die Rechte des Verzeichnisses so zu setzen, dass Dir nicht ein boeswilliger Zeitgenosse ein destruktives Script unterjubelt!!! -- R. Cirksena <r-c@gmx.net> powered by Linux -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
participants (7)
-
B.Brodesser@t-online.de
-
Diernhofer@Altmuehlnet.baynet.de
-
hd@elfie.rhein-neckar.de
-
pahlke@zedat.fu-berlin.de
-
r-c@gmx.net
-
td@music-satellite.de
-
volker.mueller@gmx.de