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

[Vielleicht OT]Bash-Script-Programmierung



Hallo,
ich habe ein paar Fragen zur Script-Programmierung unter der Bash.
Ich mache das unter Debian Testing/Unstable.

Ich habe eine Menge von Dateien mit derselben Extension (im Beispiel *.dat) 
und möchte diese in ein anderes Verzeichnis verschieben.
Nun möchte ich, falls es eine Datei im Zielverzeichnis schon gibt, an die 
neue Datei einen Suffix mit Nummerierung anhängen. Die Dateierweiterung soll 
aber gleich bleiben.

Beispiel:

/home/ich/subdir/myfile.dat

wird verschoben nach

/home/ich/destdir/myfile.dat

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

usw.

Ausschnitt aus meinem Skript, was das tut:

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
besser hinbekommen kann.

Weitere Fragen:

Skript-Programmierung kommt mir als Java-Entwickler wie 
Steinzeitprogrammierung vor: Kein Debugger, keine IDE, keine Unit-Tests.
Das Debugging bekommt man nur mit eingestreuten echos hin und Syntax-
Highlighting ist die einzige Unterstützung, die ich finden konnte.

Aber vielleicht kenne ich nicht die richtigen Werkzeuge.
Gibt es eine IDE, die Skript-Programmierung unterstützt und zumindest 
Debugging zur Verfügung stellt?

Danke für alle Hinweise und Tips.

Ciao
  Peter Schütt

-- 
www.pstt.de

Die E-Mail-Adresse funktioniert, kann aber u.U. in Zukunft mal abgeschaltet
werden. Ohne "_remove_this_" wird sie auch in Zukunft noch funktionieren.


Reply to: