Re: [Vielleicht OT]Bash-Script-Programmierung
Hallo Peter!
Peter Schütt schrieb am Mittwoch, den 12. Mai 2010:
> Wenn nun noch einmal eine Datei mit obengenannten Namen auftaucht, dann soll
> folgendes passieren:
>
> /home/ich/subdir/myfile.dat
>
> wird verschoben nach
>
> /home/ich/destdir/myfile_2.dat
Schau Dir mal die Opionen --backup und --suffix von mv an
> for file in $ROOT/subdir/*.dat; do
Das matcht keine hidden files!
> 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
Das mit dem Quoten hat man dir bereits mitgeteilt. Abhängig von deiner
shell kannst du einige der String-Verarbeitung auch bereits von der
shell erledigen lassen (man bash |less -p "^\s*Parameter Expansion")
Das ist im Normalfall schneller aber evtl. auch unportabler.
> Skript-Programmierung kommt mir als Java-Entwickler wie
> Steinzeitprogrammierung vor: Kein Debugger, keine IDE, keine Unit-Tests.
Wozu braucht man eine IDE?
Unit test gehen mit shunit oder evtl. auch shunit2 habe ich aber noch
nicht ausprobiert. (aptitutde install shunit2)
> Das Debugging bekommt man nur mit eingestreuten echos hin und Syntax-
> Highlighting ist die einzige Unterstützung, die ich finden konnte.
set -x
set -v
Du möchtest bestimmt auch mal in das Advanced Bash Scripting Howto
reinschauen. (aptitude install abs-guide)
Grüße
Christian
Reply to: