!Hilfe, IF Anweisung in Bash Script

Hmm ganz so einfach wie ich es erhofft hatte ist es wohl doch nicht.

Ich brauche daher mal die Hilfe von euch.

Ich habe mir folgendes Bash Script unter SLES9 gebastelt, jedoch funktioniert die if anweisung nicht richtig.

Ich möchte gerne den wert der Variabel „count1“==„count2“ und „volume1“==„volume2“ vergleichen. Nehme ich nur count funktionierts mit dieser Zeile

if [$count1 == $count2]
then

Wenn „count1“ und „count2“ gleich sind und gleichzeitig volume1 dem wert von volume2
entspricht, also beide Bedingungen mit „true“ bewertet werden soll die Positive benachritigung der „then“ Anweisung abgeschickt werden.

Wenn nicht soll die „else“ anweisung ausgeführt werden.

Hier mal das Script

#!/bin/sh

Diess Script soll einmal Wöchentlich eine Kopie von /burn/xyz/*

auf eine DVD Brennen und anschließend die DVD auswefen.

######################################################################################### #
#Variablen #

Diese Zeile enthält die Empfänger, getrennt durch „,“

adressen=[email protected] #

Diese Zeile enthält den Pfad zur TXT mit der eigentlichen E-mail Nachricht.

nachricht_yes=/etc/xyz/DVDCopy_yes.txt #
nachricht_no=/etc/xyz/DVDCopy_no.txt #
count1=$(find /burn/xyz/ -type f|wc -l)
count2=$(find /media/dvdram/xyz -type f|wc -l)
volume1=$(du -hs /burn/xyz |cut -f1 -d"/")
volume2=$(du -hs /media/dvdram/xyz |cut -f1 -d"/")
##########################################################################################

if [$count1 == $count2] && [$count1 == $count2]
then
#Diese Zeile versendet die Erfolgs Mail
cat $nachricht_yes | mail -s „xyz DVD“ -r [email protected] $adressen

else
echo „Es ist ein Fehler in der Bearbeitung aufgetreten.“
cat $nachricht_no | mail -s „xyz DVD“ -r [email protected] $adressen

fi

#Diese Zeile wirft die DVD aus.

eject

Hmm ganz so einfach wie ich es erhofft hatte ist es wohl doch
nicht.

Bevor es losgeht:
Es ist albern:
-auf die Einfachheit von Dingen zu hoffen,
-nicht hallo zu sagen, wenn man Hilfe will,
-das Brett zu wechseln, wenn einem die Antworten nicht gefallen,
-Code nicht in pre-tags zu setzen und
-"!!!Hilfe" in den Titel zu schreiben.

Nun gut, Tach erstmal

> #!/bin/sh  
> [...]  
> volume1=$(du -hs /burn/xyz |cut -f1 -d"/")  
> volume2=$(du -hs /media/dvdram/xyz |cut -f1 -d"/")

warum soll cut „/“ als Trennzeichen verwenden? Passt irgendwie nicht zur Ausgabe von du:

[sam@hybrid] ~/test $ du -hs burn
4.0K burn
[sam@hybrid] ~/test $ du -hs burn | cut -f1 
4.0K
[sam@hybrid] ~/test $ du -hs burn | cut -f1 -d"/"
4.0K burn

Die Option -d"/" führt also dazu, dass du dir das ganze cut-Zeugs sparen kannst. Das könnte unbeabsichtigte Konsequenzen haben. Aber ohnehin wäre

> if [$count1 == $count2] && [$count1volume1 == $count2volume2]

m.E. zweckmässiger.
Gruss
Sam