[plug] script error

Lance Duivenbode lduivenb-mlist at iinet.net.au
Thu Jan 12 10:32:48 WST 2006


 From memory, don't the functions in BASH have to be declared before you 
use them (i.e. above them?)

Lance

Jon Miller wrote:

>I'm including the latest error and the code, what I'm not getting is while the function is not being called
>gateway:/home/jlmiller# ./mailadd.sh test
>du: `/db/mail/test': No such file or directory
>FileA = test 4
>FileB = test 64
>FileA and FileB differ.
>./mailadd.sh: line 36: chngacct: command not found
>
>Code----
>#!/bin/sh
># mailadd.sh - jlmiller
># program to recreate mail accounts 
>#
># Changes record
># 11.01.2006 v.0.1
>#  Initial coding 
>#  12.01.2006 -first test run
>#
># Procedure:
># read in file name from username file
># check if file exists in both /var/spool/mail and /db/mailtmp.
># check if the size of the files are the same or different.
># if same remove from /var/spool/mail if not move to /db/mail.
># recreate a mail file
># append old files to new files
># repeat with next name in file
>#
># Variables
>cmail=/var/spool/mail
>omail=/db/mailtmp
>tmail=/db/mail
># get the size of the file
>fileA=`du -k $cmail/$1 | cut -f 1`
>fileB=`du -k $omail/$1 | cut -f 1`
>fileC=`du -k $tmail/$1 | cut -f 1`
>
># show file and size
>echo "FileA = $1 $fileA"
>echo "FileB = $1 $fileB"
>
># check if file A and fileB are the same or different
># if same recreate account
># if different move file to temp area
>if [ $fileA == $fileB ] 
>then 
>  echo "FileA and FileB are identical."
>  recreate                 # function call
>else
>  echo "FileA and FileB differ."
>  chngacct              # function call
>fi
>exit 0
>############ FUNCTION PROCEDURE ##############
>
>function recreate()
>{
># identical files - recreate mail file
>rm $cmail/$fileA
>mail $1 -s "testing" </dev/null
>cat $omail/$1 >> $cmail/$1
>$fileA
>echo "Finish $fileA"
>}
>
>
>function chngacct()
>{
># different files - move to temp area, recreate and append old mail to new mail
>$fileA
>mv $cmail/$fileA $tmail
>$fileC
>rm $cmail/$fileA
>mail $1 -s "testing" </dev/null
>cat $omail/$1 >> $cmail/$1
>cat $tmail/$1 >> $cmail/$1
>$fileA
>echo " Finish $fileA"
>}
>
>
>
>Thanks
>
>  
>
>>>>troll at arach.net.au 9:32:28 am 12/01/2006 >>>
>>>>        
>>>>
>On Thursday 12 January 2006 09:39, Jon Miller wrote:
>  
>
>>Did that a few minutes ago and still same error.
>>
>>Jon
>>
>>    
>>
>>>>>troll at arach.net.au 9:22:57 am 12/01/2006 >>>
>>>>>          
>>>>>
>>On Thursday 12 January 2006 08:06, Jon Miller wrote:
>>    
>>
>>>I've tried looking how to construct this and I keep getting the same error
>>>
>>>syntax error near unexpected token `else'
>>>
>>>if [ $fileA == $fileB ]; then                         # compare files
>>>      
>>>
>try 
>if [ "$fileA" == "$fileB" ]
> then
>  
>
>>>  echo "FileA and FileB are identical."
>>>  recreate()                                                 # run function
>>>  else
>>>  echo "FileA and FileB differ."
>>>  chngacct()                                                # run function
>>>fi
>>>      
>>>
>
>  
>




More information about the plug mailing list