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

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: