Page 1 of 1

ShellScript -> Variable nur mit positivem Wert

Posted: 13. Dec 2013 7:22
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

Posted: 13. Dec 2013 11:08
by hjb
Hi!

Vielleicht so:

Code: Select all

if [ $LoeAnz -lt 0 ]; then
    LoeAnz=0
fi
Grüße,
hjb

Posted: 13. Dec 2013 15:40
by ottto
Passt!
Danke.
Gruß.
ottto

Posted: 19. Mar 2015 23:52
by fx996
Alle Dateien ausser den 8 jüngsten löschen:

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