-
Abfrage und Auswerten von Dateien
Hi,
ich habe schon mehrere Fragen gestellt, die immer wieder auf einer FOR-Schleife nach dem Motto:
set=$(ls)
for i in do
...
done
Dazu habt Ihr mir auch schon einige tolle Antworten gesandt, aber ich mache wohl was falsch. Die Schleife läuft nie genau so oft durch, wie ich es erwarte.
Jetzt habe ich es mal so probiert
for i in $(ls)
do
done
Stimmt das?
Hat jemand eine getestete Abfrage, mit der er für alle Dateien in einem Verzeichnis einmal eine oder mehrere bestimmte Actionen einleitet?
MfG,
Werner
PS: Kann man eigentlich "fertige" Scripten wo posten, so daß sich jemand Gedanken darüber machen kann, was man alles vergessen hat?
-
-
In der Shell gibt es viele Möglichkeiten, das gleiche zu erreichen.
Ich mag vollgendes Konstrukt sehr gerne:
<pre>
LISTE=`ls /ver/zeich/niss`
for i in $LISTE; do
echo $i
done
</pre>
Diese Konstrukt hat den Vorteil, das du dich nicht explizit in diesem Pfad befinden musst. Ausserdem kann man $LISTE dann auch gleich weiterverwenden.
Gerne mag ich es, die Einstellungen von aussen, oder am Anfang einzustellen, damit ich weiter weiter nix machen muss.
z.B.
<pre>
DIR="$HOME"
LS_OPT="-A"
source $HOME/.mein.script.rc
test "$1" = "-d" && DIR="$2"
test "$3" = "-d" && DIR="$4"
test "$1" = "-o" && LS_OPT="$2"
test "$3" = "-o" && LS_OPT="$4"
LISTE="ls $LS_OPT $DIR"
for i in $LISTE; do
echo $i
done
</pre>
Dies bedeutet beispielsweise, das ich Einstellungen im Script selber habe, die ich jederzeit im Script ändern kann. Wenn ich nun in meinem Home eine Datei .mein.script.rc habe, dann kann ich dort die Variablen DIR und LS_OPT neu definieren.
Mit Komandozeilenoptionen kann ich die Variablen nochmal verändern.
Das script wir dadurch übersichtlicher als:
<pre>
for in in $(ls bla böub sonstwas); do
echo $i
done
</pre>
Aber das ist jedem seinen eigenen Stil überlassen.
thorsten
------------------
Thorsten Wandersmann
SuSE GmbH, Nuernberg
-
thommy: wie kriegst du im (pre) leerzeilen hin?
thorsten
------------------
Thorsten Wandersmann
SuSE GmbH, Nuernberg
-
Hallo Thorsten,
so richtig bin ich auch noch nicht hinter zulässige und unterdrückte Formatierungsbefehle gestiegen... (früher ließ sich sogar mal Text <b>fett</b> drucken, jetzt nicht mehr???)
Eine zusätzliche Leerzeile ist wohl nur über die Aufteilung des Textes in zwei <pre></pre>-Formatierungen möglich, mehrere <br> werden leider unterdrückt...
Grüße Thomas
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen