ShellScript -> Variable nur mit positivem Wert

Antworten
Nachricht
Autor
ottto
Beiträge: 176
Registriert: 09. Sep 2004 15:00

ShellScript -> Variable nur mit positivem Wert

#1 Beitrag von ottto » 13. Dez 2013 7:22

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: Alles auswählen

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

Benutzeravatar
hjb
Pro-Linux
Beiträge: 3244
Registriert: 15. Aug 1999 16:59
Wohnort: Bruchsal
Kontaktdaten:

#2 Beitrag von hjb » 13. Dez 2013 11:08

Hi!

Vielleicht so:

Code: Alles auswählen

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

ottto
Beiträge: 176
Registriert: 09. Sep 2004 15:00

#3 Beitrag von ottto » 13. Dez 2013 15:40

Passt!
Danke.
Gruß.
ottto

fx996

#4 Beitrag von fx996 » 19. Mär 2015 23:52

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

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

Antworten