ShellScript -> Variable nur mit positivem Wert

Post Reply
Message
Author
ottto
Posts: 176
Joined: 09. Sep 2004 15:00

ShellScript -> Variable nur mit positivem Wert

#1 Post by ottto »

Hallo zusammen,
ich möchte eine Variable mit dem Ergebnis einer Subtraktion füllen, aber so, dass dort nie eine negative Zahl drin steht. Kann man eine Variable entsprechend vorbelegen?
Hintergrund:
Ich bastele gerade an einem Script, welches alle Dateien aus einem Verzeichnis löscht, außer die 8 "jüngsten". Funktioniert auch solange min. 8 Dateien im Verzeichnis sind.
Sobald dort weniger drin sind macht mir das "tail -n$LoeAnz" Sorgen. tail zeigt auch Einträge an, wenn in der $LoeAnz ein negativer Wert drin steht. Wie kann ich der Variablen beibringen, dass ihr Wert nie kleiner als 0 sein darf?
Hat Jemand eine Idee? Sorry, falls ich auf dem Holzweg bin. Bin noch Anfänger mit der Shellprogrammierung.
Danke.
ottto

Code: Select all

DatAnz=`find -type f| wc -l`
echo $DatAnz
LoeAnz=$(($DatAnz-8))
echo $LoeAnz
DatNam=`ls -tr| tail -n$LoeAnz`
if [ -n "${DatNam}" ] ; then
echo "${DatNam}"
#rm ${DatNam}
fi

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

#2 Post by hjb »

Hi!

Vielleicht so:

Code: Select all

if [ $LoeAnz -lt 0 ]; then
    LoeAnz=0
fi
Grüße,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

ottto
Posts: 176
Joined: 09. Sep 2004 15:00

#3 Post by ottto »

Passt!
Danke.
Gruß.
ottto

fx996

#4 Post by fx996 »

Alle Dateien ausser den 8 jüngsten löschen:

ls -t | tail -n +9 | xargs rm -f

Post Reply