[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Vielleicht OT]Bash-Script-Programmierung



Mart Frauenlob schrieb:
> On 12.05.2010 21:01, Peter Schütt wrote:
> > for file in $ROOT/subdir/*.dat; do
> >    DESTFILE=$ROOT/destdir/`basename $file`
> >
> >    if [ -e $DESTFILE ]; then
> >      DESTPREFIX=$ROOT/destdir/`basename $DESTFILE .dat`
> >      N=2
> >      DESTFILE=`echo $DESTPREFIX`_$N.dat
> >      while [ -e $DESTFILE ]
> >      do
> >         N=$((N+1))
> >         DESTFILE=`echo $DESTPREFIX`_$N.dat
> >      done
> >    fi
> >    mv -v $file $DESTFILE
> > done
> >
> > Zum einen würde ich gerne einmal die Meinung von erfahrenen
> > Skriptprogrammierern zu diesem Code-Abschnitt hören, weil ich bei
> > Skripten noch ein Neuling bin. Insbesondere interessiert mich, ob man die
> > Konstruktion
> >   DESTFILE=`echo $DESTPREFIX`_$N.dat
> 
> x="foo_$((y++)).bar"
> 
> > besser hinbekommen kann.
> 
> ist vielleicht nicht so von Bedeutung für dich aber da ist eine
> race-condition.

Aber doch nur, wenn man das Script doppelt auf denselben Endordner laufen 
lässt, oder täusche ich mich da? Wenn es nur einmal läuft, läuft es 
sequenziell ab und es wird bei jeder Datei geprüft, ob eine Datei dieses 
Namens im Endordner schon existiert und hochgezählt. Dann gemoved und weiter 
geht es mit der nächsten Datei. Ok, wenn das Script nur einmal läuft, man aber 
noch wild im Endordner rumspielt, während das Script läuft, kann es auch zu 
Problemen kommen, aber das will man ja eigentlich nicht.

Oder hab ich da noch etwas entscheidendes übersehen?

-- 
MfG Jan

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: