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

Re: Probleme mit bash-Script



Jan Trippler schrieb:
Am Mittwoch, 2. Juni 2004 17:15 schrieb Ulrich Fürst:
Meine Lösung wäre
folgende gewesen:

belegt=`du -sm`
if [ $belegt -gt 7500 ]
  then
      echo
      echo Bitte erst alte Sicherungen löschen!
      echo
      exit 1;
  elif [ $belegt -lt 7500 ]
  then
      echo
      echo Sicherung beginnt ...
      echo
fi

Offensichtlich ergibt du -sm nicht eine Zahl sondern mehrere? Wie
kann ich das verhindern?


jan@jack:~/Development/www/progs> du -sm
1       .

In der Variablen $belegt steht also "1 ." - da Du nicht quotest, kriegt der test folgendes zu sehen:
[ 1       . -gt 7500 ]

Abhilfe:
belegt=`du -sm | cut -f1`


Danke, da hab ich wohl nicht gut hingeguckt beim händischen
durchprobieren; der Punkt ist mir einfach nicht aufgefallen. So
funktioniert auf jeden Fall.

Gruß Ulrich

P.S. Das von Phillip vorgeschlagene `du -sm | cut -d' ' -f1` funktioniert nicht. Nur so interessehalber: Warum eigentlich nicht? Cut erkennt ein leerzeichen nicht als trenner an und interpretiert "zahl ." dann doch als ein Feld und übergibt es folglich ganz? Oder liegt das an etwas anderem?



Reply to: