Re: Probleme mit bash-Script

2004-06-04 Diskussionsfäden Heike C. Zimmerer
Ulrich Fürst [EMAIL PROTECTED] writes:

 [ set `Kommando` ]

 Wo liegt den der Unterschied zwischen set `befehl` und
 variable=`befehl`? Bzw. in welchem manual finde ich zu set etwas?

var=`befehl` setzt var auf das, was der Befehl zurückgibt.  In deinem
Beispiel brauchst du einen zusätzlichen Prozess (z.B. cut), um aus dem
Ergebnis das Gewünschte herauszufieseln.

set parst das Ergebnis und weist die Bestandteile den
Positionsparametern ($1, $2, ..) zu.  

set ist ein ziemlich überladenes Kommando und hat noch einige andere
Funktionen (info bash, The Set Builtin).  Insbesondere solltest du
bei dieser Anwendung set -- `Kommando statt set `Kommando`
verwenden, wenn das Kommando auch null Ergebnisse liefern kann.

Gruß,

 Heike


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Probleme mit bash-Script

2004-06-04 Diskussionsfäden Ulrich Fürst
Jan Trippler schrieb:
Am Donnerstag, 3. Juni 2004 20:34 schrieb Ulrich Fürst:
In man cut steht aber doch:
-d, --delimiter=DELIM
use DELIM instead of TAB for field delimiter
wenn ich also -d  schreibe müsste er den vorhandenen Tabulatur
gegen ein Leerzeichen austauschen. Oder verstehe ich das
(anscheinend) falsch?

Ja. cut tauscht gar nichts aus - er nutzt den vorgegebenen 
Feldtrenner, um Dir z. B. Feld 1 (cut -f1) aus der Eingabezeile 
ermitteln zu können. Wenn Du cut sagst: Nimm als Trennzeichen 
zwischen den Feldern den Blank und in der Eingabezeile gibts 
keinen, dann folgert cut haarscharf: Aha - nur ein Feld da. cut ist 
ein Messer - es schneidet Teilchen aus und sonst nix. Der 
Feldtrenner (Option -d) ist lediglich sozusagen die Stelle, an der 
das Messer angelegt wird. 
Ah jetzt ja, Danke. Ich glaub ich fang mal an zur englischen und 
deutschen Version eine Version Manpage for dummies zu schreiben... ;-)

Hast Du schon mal ein Messer gehabt, was 
Dir an der Stelle, wo Du den Käse schneidest ein Stück Bratwurst 
einfügt? ;-)
Wäre aber sicher 'ne Marktlücke 8-)
Gruß Ulrich

--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Probleme mit bash-Script

2004-06-04 Diskussionsfäden Ulrich Fürst
Heike C. Zimmerer schrieb:
var=`befehl` setzt var auf das, was der Befehl zurückgibt.  In deinem
Beispiel brauchst du einen zusätzlichen Prozess (z.B. cut), um aus dem
Ergebnis das Gewünschte herauszufieseln.
O.K. das ist mir jetzt klar.
set parst das Ergebnis und weist die Bestandteile den
Positionsparametern ($1, $2, ..) zu.  
heißt das dass bei set `du -sm` $1 die Zahl ist und $2 dann der Punkt?
Oder allgemein, dass die einzelnen Felder als Variablen von 1..x gesetzt 
werden?

set ist ein ziemlich überladenes Kommando und hat noch einige andere
Funktionen (info bash, The Set Builtin).  Insbesondere solltest du
bei dieser Anwendung set -- `Kommando statt set `Kommando`
verwenden, wenn das Kommando auch null Ergebnisse liefern kann.
Danke werd ich mir mal durchlesen.
Gruß Ulrich
--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Probleme mit bash-Script

2004-06-04 Diskussionsfäden Heike C. Zimmerer
Ulrich Fürst [EMAIL PROTECTED] writes:
 Heike C. Zimmerer schrieb:
 set parst das Ergebnis und weist die Bestandteile den
 Positionsparametern ($1, $2, ..) zu.

 heißt das dass bei set `du -sm` $1 die Zahl ist und $2 dann der Punkt?
 Oder allgemein, dass die einzelnen Felder als Variablen von 1..x
 gesetzt werden?

Genau.

Gruß,

 Heike


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Probleme mit bash-Script

2004-06-04 Diskussionsfäden Ulrich Fürst
Heike C. Zimmerer schrieb:
Ulrich Fürst [EMAIL PROTECTED] writes:
Heike C. Zimmerer schrieb:
set parst das Ergebnis und weist die Bestandteile den
Positionsparametern ($1, $2, ..) zu.
heißt das dass bei set `du -sm` $1 die Zahl ist und $2 dann der Punkt?
Oder allgemein, dass die einzelnen Felder als Variablen von 1..x
gesetzt werden?

Genau.
Danke, wieder was gelernt; dann werd ich mal meinen Lese-Abend
beginnen... :-)
Gruß Ulrich

--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Probleme mit bash-Script

2004-06-03 Diskussionsfäden Ulrich Fürst
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?

[EMAIL PROTECTED]:~/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?

--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Probleme mit bash-Script

2004-06-03 Diskussionsfäden Ulrich Fürst
Heike C. Zimmerer schrieb:
Eine Lösungsmöglichkeit:
set `du -sm`
if [ $1 -gt 7500 ]; then
Geht leider nicht, hatte ich schon probiert (sämtliche Variationen von 
Anführungszeichen)


Was macht dein Skript übrigens, wenn es exakt 7500 MB sind?  Gar
nichts.  Irgendwie glaube ich nicht, dass das beabsichtigt ist...
Das stimmt allerdings, Danke. Hab die zweite (-lt) gegen -le getauscht :-)
Gruß Ulrich
--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Probleme mit bash-Script

2004-06-03 Diskussionsfäden Philipp Meier
Ulrich Fürst schrieb:

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?
Cut-and-paste-Fehler von mir, du trennt mit Tabulater, korrekt war:
dm -sm | cut -f1
-billy.
--
Meisterbohne   Meisterbohne GbR, Küfner, Mekle, Meier   Tel: +49-731-399 499-0
   eLösungen   Söflinger Straße 100 Fax: +49-731-399 499-9
   89077 Ulm   http://www.meisterbohne.de/
--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Probleme mit bash-Script

2004-06-03 Diskussionsfäden Andreas Schmidt
On 2004.06.03 14:41, Ulrich Fürst wrote:
Heike C. Zimmerer schrieb:
Was macht dein Skript übrigens, wenn es exakt 7500 MB sind?  Gar
nichts.  Irgendwie glaube ich nicht, dass das beabsichtigt ist...
Das stimmt allerdings, Danke. Hab die zweite (-lt) gegen -le  
getauscht :-)

Wieso nimmst Du eigentlich ueberhaupt ein elif, wenn es doch ein  
einfaches else auch tut? Da sparst Du dann nicht nur die zweite  
Bedingung, sondern auch noch das zweite then...

Schoenen Gruss,
Andreas
--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Probleme mit bash-Script

2004-06-03 Diskussionsfäden Heike C. Zimmerer
Ulrich Fürst [EMAIL PROTECTED] writes:

 Heike C. Zimmerer schrieb:
 Eine Lösungsmöglichkeit:
 set `du -sm`
 if [ $1 -gt 7500 ]; then

 Geht leider nicht, hatte ich schon probiert (sämtliche Variationen von
 Anführungszeichen)

Geht nicht ist nicht besonders aussagekräftig.

[EMAIL PROTECTED]:~$ du -sm
1317.
[EMAIL PROTECTED]:~$ set `du -sm`
[EMAIL PROTECTED]:~$ echo $1
[EMAIL PROTECTED]:~$ if [ $1 -gt 1317 ]; then echo ja; else echo noi; fi
noi
[EMAIL PROTECTED]:~$ if [ $1 -gt 1316 ]; then echo ja; else echo noi; fi
ja

Wieso Anführungszeichen?  Auf die Backticks kommt es an.

Gruß,

 Heike


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Probleme mit bash-Script

2004-06-03 Diskussionsfäden Ulrich Fürst
Andreas Schmidt schrieb:
On 2004.06.03 14:41, Ulrich Fürst wrote:
Heike C. Zimmerer schrieb:
Was macht dein Skript übrigens, wenn es exakt 7500 MB sind?  Gar
nichts.  Irgendwie glaube ich nicht, dass das beabsichtigt ist...
Das stimmt allerdings, Danke. Hab die zweite (-lt) gegen -le  
getauscht :-)

Wieso nimmst Du eigentlich ueberhaupt ein elif, wenn es doch ein  
einfaches else auch tut? Da sparst Du dann nicht nur die zweite  
Bedingung, sondern auch noch das zweite then...
Ganz einfach, das hab ich eingebaut, da ich mir nicht sicher war, dass 
der Test funktioniert. Lasse ich die zweite Abfrage weg, läuft die 
Sicherung wenn:
1. die Bedingung der ersten Abfrage nicht erfüllt ist (das wäre o.k.)
2. ein Fehler in der Abfrage ist (wie eben in diesem Fall)
So dass also das Script u.U. versuchen würde auf eine Volle Festplatte 
zu schreiben...

Gruß Ulrich
P.S. im Prinzip kann ich die 2. Bedingung also jetzt auch wieder rausnehmen.
--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Probleme mit bash-Script

2004-06-03 Diskussionsfäden Ulrich Fürst
Philipp Meier schrieb:
Ulrich Fürst schrieb:

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?

Cut-and-paste-Fehler von mir, du trennt mit Tabulater, korrekt war:
Ja schon, aber cut -d' ' ersetzt den Tabulator durch ein Leerzeichen?
Und dadurch ist das erste Feld (-f1) die komplette Ausgabe, weil Felder 
nicht durch Leerzeichen getrennt werden dürfen?

Mir geht's jetzt einfach um das tiefere Verständnis von cut (die 
Man-Page hab ich gelesen) und nicht mehr um das Script an sich.

Gruß Ulrich
--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Probleme mit bash-Script

2004-06-03 Diskussionsfäden Ulrich Fürst
Also erst mal zum Anfang, das Script-Problem ist gelöst (siehe andere 
Mails) aber ich lerne gerne noch dazu.

Heike C. Zimmerer schrieb:
Ulrich Fürst [EMAIL PROTECTED] writes:

Heike C. Zimmerer schrieb:
Eine Lösungsmöglichkeit:
set `du -sm`
if [ $1 -gt 7500 ]; then
Geht leider nicht, hatte ich schon probiert (sämtliche Variationen von
Anführungszeichen)

Geht nicht ist nicht besonders aussagekräftig.
[EMAIL PROTECTED]:~$ du -sm
1317.
[EMAIL PROTECTED]:~$ set `du -sm`
[EMAIL PROTECTED]:~$ echo $1
[EMAIL PROTECTED]:~$ if [ $1 -gt 1317 ]; then echo ja; else echo noi; fi
noi
[EMAIL PROTECTED]:~$ if [ $1 -gt 1316 ]; then echo ja; else echo noi; fi
ja
Wieso Anführungszeichen?  Auf die Backticks kommt es an.
Sorry, ich meinte die Anführungszeichen um $1 in der Abfrage.
Aber egal, war sowieso zu voreilig. Es funktioniert sowohl mit als auch 
ohne Anführungszeichen um $1.
Wo liegt den der Unterschied zwischen set `befehl` und 
variable=`befehl`? Bzw. in welchem manual finde ich zu set etwas?

Gruß Ulrich
--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Probleme mit bash-Script

2004-06-03 Diskussionsfäden Jan Trippler
Am Donnerstag, 3. Juni 2004 17:32 schrieb Ulrich Fürst:
 Philipp Meier schrieb:
  Ulrich Fürst schrieb:
  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?
 
  Cut-and-paste-Fehler von mir, du trennt mit Tabulater, korrekt
  war:

 Ja schon, aber cut -d' ' ersetzt den Tabulator durch ein
 Leerzeichen? Und dadurch ist das erste Feld (-f1) die komplette
 Ausgabe, weil Felder nicht durch Leerzeichen getrennt werden
 dürfen?

Wenn Du cut mit der Option -d einen Feldtrenner mitgibst, dann wird 
_nur_ dieser genutzt. Ohne Angabe von -d wird per Default der 
Tabulator genommen. Da die Angaben bei du mit Tab getrennt sind, 
kann ein cut -f1 -d  nicht funktionieren - es ist eben kein 
Leerzeichen vorhanden.

Du kannst Dir im Zweifel das auch angucken:
[EMAIL PROTECTED]:~/Documents du -sm | od -cx
000   3  \t   .  \n
0933 0a2e
004

Da siehst Du den Tabulator.

Jan



Re: Probleme mit bash-Script

2004-06-03 Diskussionsfäden Ulrich Fürst
Jan Trippler schrieb:
Wenn Du cut mit der Option -d einen Feldtrenner mitgibst, dann wird 
_nur_ dieser genutzt. Ohne Angabe von -d wird per Default der 
Tabulator genommen. Da die Angaben bei du mit Tab getrennt sind, 
kann ein cut -f1 -d  nicht funktionieren - es ist eben kein 
Leerzeichen vorhanden.

Du kannst Dir im Zweifel das auch angucken:
[EMAIL PROTECTED]:~/Documents du -sm | od -cx
000   3  \t   .  \n
0933 0a2e
004
Da siehst Du den Tabulator.
In man cut steht aber doch:
-d, --delimiter=DELIM
 use DELIM instead of TAB for field delimiter
wenn ich also -d  schreibe müsste er den vorhandenen Tabulatur gegen 
ein Leerzeichen austauschen. Oder verstehe ich das (anscheinend) falsch?

Gruß Ulrich
--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Probleme mit bash-Script

2004-06-03 Diskussionsfäden Jan Trippler
Am Donnerstag, 3. Juni 2004 20:34 schrieb Ulrich Fürst:
 In man cut steht aber doch:
  -d, --delimiter=DELIM
   use DELIM instead of TAB for field delimiter

 wenn ich also -d  schreibe müsste er den vorhandenen Tabulatur
 gegen ein Leerzeichen austauschen. Oder verstehe ich das
 (anscheinend) falsch?

Ja. cut tauscht gar nichts aus - er nutzt den vorgegebenen 
Feldtrenner, um Dir z. B. Feld 1 (cut -f1) aus der Eingabezeile 
ermitteln zu können. Wenn Du cut sagst: Nimm als Trennzeichen 
zwischen den Feldern den Blank und in der Eingabezeile gibts 
keinen, dann folgert cut haarscharf: Aha - nur ein Feld da. cut ist 
ein Messer - es schneidet Teilchen aus und sonst nix. Der 
Feldtrenner (Option -d) ist lediglich sozusagen die Stelle, an der 
das Messer angelegt wird. Hast Du schon mal ein Messer gehabt, was 
Dir an der Stelle, wo Du den Käse schneidest ein Stück Bratwurst 
einfügt? ;-)

Jan



Probleme mit bash-Script

2004-06-02 Diskussionsfäden Ulrich Fürst
Hallo allerseits!
ich wollte in einem Script zur Datensicherung eine Abfrage einbauen ob
auf dem Zieldatenträger noch genügend Platz ist. 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
(Herauskommen soll: wenn die Platte zu mehr als 7500 MB belegt ist
erfolgt nur eine Warnung sonst wird gesichert)
Ich bekomme aber die Fehlermeldung line 11: [: too many arguments (das
ist im Script die if-Zeile (dto. bei der anderen).
Offensichtlich ergibt du -sm nicht eine Zahl sondern mehrere? Wie kann
ich das verhindern?
TIA
Ulrich

--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Probleme mit bash-Script

2004-06-02 Diskussionsfäden Philipp Meier
Ulrich Fürst schrieb:
Hallo allerseits!
ich wollte in einem Script zur Datensicherung eine Abfrage einbauen ob
auf dem Zieldatenträger noch genügend Platz ist. 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

(Herauskommen soll: wenn die Platte zu mehr als 7500 MB belegt ist
erfolgt nur eine Warnung sonst wird gesichert)
Ich bekomme aber die Fehlermeldung line 11: [: too many arguments (das
ist im Script die if-Zeile (dto. bei der anderen).
Offensichtlich ergibt du -sm nicht eine Zahl sondern mehrere? Wie kann
ich das verhindern?
beleget=`du -sm | cut -d' ' -f1`
-billy.
--
Meisterbohne   Meisterbohne GbR, Küfner, Mekle, Meier   Tel: +49-731-399 499-0
   eLösungen   Söflinger Straße 100 Fax: +49-731-399 499-9
   89077 Ulm   http://www.meisterbohne.de/
--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)


Re: Probleme mit bash-Script

2004-06-02 Diskussionsfäden Jan Trippler
Am Mittwoch, 2. Juni 2004 17:15 schrieb Ulrich Fürst:
 ich wollte in einem Script zur Datensicherung eine Abfrage
 einbauen ob auf dem Zieldatenträger noch genügend Platz ist.
 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

 (Herauskommen soll: wenn die Platte zu mehr als 7500 MB belegt
 ist erfolgt nur eine Warnung sonst wird gesichert)
 Ich bekomme aber die Fehlermeldung line 11: [: too many
 arguments (das ist im Script die if-Zeile (dto. bei der
 anderen).
 Offensichtlich ergibt du -sm nicht eine Zahl sondern mehrere? Wie
 kann ich das verhindern?

[EMAIL PROTECTED]:~/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`

Jan



Re: Probleme mit bash-Script

2004-06-02 Diskussionsfäden Heike C. Zimmerer
Ulrich Fürst [EMAIL PROTECTED] writes:

 ich wollte in einem Script zur Datensicherung eine Abfrage einbauen ob
 auf dem Zieldatenträger noch genügend Platz ist. Meine Lösung wäre
 folgende gewesen:

 belegt=`du -sm`
 if [ $belegt -gt 7500 ]
then
[..]echo
elif [ $belegt -lt 7500 ]

 Ich bekomme aber die Fehlermeldung line 11: [: too many arguments (das
 ist im Script die if-Zeile (dto. bei der anderen).
 Offensichtlich ergibt du -sm nicht eine Zahl sondern mehrere? Wie kann
 ich das verhindern?

Du brauchst doch nur du -sm von Hand ausführen, um zu sehen, dass es
mehr zurückliefert als nur eine Zahl.  Da ist doch nichts Schwieriges
dran.

Eine Lösungsmöglichkeit:

set `du -sm`
if [ $1 -gt 7500 ]; then



Was macht dein Skript übrigens, wenn es exakt 7500 MB sind?  Gar
nichts.  Irgendwie glaube ich nicht, dass das beabsichtigt ist...


Gruß,

 Heike


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)