ambiguous redirect

Bash, Shell, PHP, Python, Perl, CGI
theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

ambiguous redirect

Post by theomega »

Warum geht dieser Code nicht? Der ist eine Kombination aus zwei Scripten, die ich hier im Forum gefunden habe

Code: Select all

#!/bin/bash 

ADAY='14'; # Abrechungstag bei Puretec 
DATEI='/tmp/panik.trf'; #zum Zwischenspeichern 
ZWEI= '/tmp/test.trf';
PANIK_TRAFFIC=500;   #Trafficlimit für eine Stunde in MB 
MAX_TRAFFIC=50000;  # Gesamtlimit in MB 
EMAIL='meineMail'; #Benachrichtigungsadresse 
WEBROOT='/home/www' 
MAILDIR='/var/spool/mail' 



YM_DAY=`date '+%d'` 
HOUR=`date '+%I'` 
if [ $YM_DAY -lt $ADAY ] 
then 
YM_CURRENT=`date --date='1 month ago' '+%Y%m'`$ADAY 
else 
YM_CURRENT=`date '+%Y%m'`$ADAY 
fi 
OLD_TRAFFIC=`tail $DATEI`; 
TRAFFIC=`/usr/local/iam/iam --from-date=$YM_CURRENT -r /usr/local/iam/dump | grep internet |  perl -ne '@option = split (" ","$_"); print $option[1];'` 
echo $TRAFFIC > $DATEI 
#Morgens und Abends eine Info über den Trafficstand 'Ich lebe noch' 
#if [ $HOUR == 10 ] 
#then 
#Normale Ausgabe


date > $ZWEI
echo "Festplattenspeichernutzung der Benutzern" >> $ZWEI

# wechselt nach webroot 
cd $WEBROOT 

# Schleife über alle web* Verzeichnisse 
for i in web* 
    do 
      echo "$i:" >> $ZWEI
      echo ------ >> $ZWEI
      # du Berechnet den Speicherplatz 
      # -L folgt Symlinks, -h Human, -s Summary, -c Totale 
      du -Lhsc $WEBROOT/$i/ $MAILDIR/$i* >> $ZWEI
      echo "=============================="  >> $ZWEI
    done 

# wechelst wieder zurück 
cd ~ 

echo ==================================== >> $ZWEI
echo $TRAFFIC." MB" >> $ZWEI

cat $ZWEI | mail -s "Server Status" $EMAIL






#fi 
TRAFFIC_VERBRAUCH=`bc<<Ende 
$TRAFFIC-$OLD_TRAFFIC 
Ende`; 
TRAFFIC_VERBRAUCH=`printf "%.0f" $TRAFFIC_VERBRAUCH` 
TRAFFIC=`printf "%.0f" $TRAFFIC` 
# Ist innerhalb einer Stunde mehr verbraucht als im Limit melde Dich! 
if [ $TRAFFIC_VERBRAUCH -gt $PANIK_TRAFFIC ] 
then 
echo "ACHTUNG ! "$TRAFFIC_VERBRAUCH" MB verbraucht." | mail  -s Panik $EMAIL 
fi 
# Ist Inclusivtraffic verbraucht, melde Dich! 
if [ $TRAFFIC -gt $MAX_TRAFFIC ] 
then 
echo "ACHTUNG ! Maximales Trafficlimit abgelaufen." | mail  -s Panik $EMAIL 
fi 
Als fehler erhalte ich immer "ambiguous redirect".

Danke

TO
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: ambiguous redirect

Post by captaincrunch »

Auf Anhieb sehe ich keinen Fehler. Ich würde an deiner Stelle das ganze mal z.B. mit sh -x SCRIPT starten, dann bekommst du pro Step die Angabe, was gerade in welcher Variable steckt, und wirst so sicherlich auch weiter kommen, was das Debugging angeht ...
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
[tom]
Posts: 656
Joined: 2003-01-08 20:10
Location: Berlin

Re: ambiguous redirect

Post by [tom] »

Hmm - wär ein bash -x SCRIPT hier nicht angebrachter?

[TOM]
theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: ambiguous redirect

Post by theomega »

Oki, danke ihr beiden, der Fehler ist behoben. Es darf kein Leerzeichen
in dieser Zeile sein

Code: Select all

ZWEI= '/tmp/test.trf'; 
Diese Pingeligkeit ist man ja nichtmal von C++ gewohnt.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: ambiguous redirect

Post by captaincrunch »

Stimmt ... ich war der Meinung, etwas in der Richtung gesehen zu haben, habe aber im Endeffekt die Augen nicht weit genug aufbekommen, um die Zeile wiederzufinden ... :oops:

@ Tom :
Im Normalfall ist bei sämtlichen Linux-Distris sh sowieso nur ein Link auf /bin/bash ... ich bin halt nur "geschädigt" durch Systeme, auf denen keine bash läuft, und muss daher so "portabel" wie möglich denken ... :wink:
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc