Syntax error near unexpected token `('


Login or Register to Reply

 
Thread Tools Search this Thread
# 1  
Old 02-03-2010
Bug Syntax error near unexpected token `('

Guys ,

This is an output of my script errored out for "Syntax error near unexpected token `(' " Can someone tell me whats wrong with my script.
Below is my original script pasted.

Code:
#!/bin/bash
Script Creation Date 01/21/2010
Author baraghun

##****************************************************************
##  **********  FUNCTION USAGE  ***********
##****************************************************************


Script name without path

BASENAME=`basename $0`

Script Location

LOCATION=/home/myHome

The INFILE is going to use during the SSH

INFILE=${HOME}/config/inFile.txt

The changes will write to OUTFILE

OUTFILE=${HOME}/out/outFile

Functional Usage

usage() {
        echo
        echo "USAGE"
        echo "   "`basename $0`" <device> <disable|enable> "
        echo
        exit
        }
        echo
        echo    
        echo " Preparing to service at request to Device ${1} in Question . "
        echo
        echo

Firewall() {

      #Local Variables
      #
       local STATE="$1"
      #

cat << EOF > $INFILE
admin
psswd
config
switch Services
http Firewall
admin-state ${STATE}
show
exit
exit
exit
EOF
}

#
#Validate the device name
#
echo $1 | egrep "^(cmox|pmox|tmox)[0-9][0-9][0-9][0-9]\-ra$" > /dev/null 2>&1
if [ $? -ne 0 ]
then
   echo
   echo "Node doesn't exist"
   echo
else
   echo
   echo "Node does exist"
   echo
fi

DPDEVICE="$1"

# Check the  parameters
#

# Check the input parameters
#
case $2 in
         disable)
                Firewall disabled
                echo " Disabling the Device in few seconds "
        ;;
         enable)
                Firewall enabled
                echo " Enabling the Device in few seconds "
        ;;
        *)
                usage
        ;;
esac

#
# Apply the changes
#
DATE=`date`
ssh -T ${DPDEVICE} < $INFILE >> $OUTFILE
if [$? -eq 0]
then
   echo " Report Logging . . "
   mv -if $OUTFILE $OUTFILE(date +%y%m%d-%H%M%S).${DPDEVICE}
else
   echo " Conection error.Please Validate the NODE name"
fi

#
#
chmod 755 ${OUTFILE}

The Output of the script is something like this , given below



Code:
 

$ ./routing.sh cmox2222-ra enable

**********************************************************************
 Preparing to service at request to Device cmox2222-ra in Question . . .
**********************************************************************


Node does exist

 Enabling the Device in few seconds
./routing.sh: line 107: syntax error near unexpected token `('
./routing.sh: line 107: `   mv -if $OUTFILE $OUTFILE(date +%y%m%d-%H%M%S).${DPDEVICE}'

Just Because of the above error the log file is not getting created & also not in the desired format. Can some one suggest me .. what needs to be changed or manipulated in the above script

Last edited by Scott; 02-03-2010 at 02:30 AM.. Reason: Fixed code tags
# 2  
Old 02-03-2010
The line should read
Code:
mv -if $OUTFILE $OUTFILE$(date +%y%m%d-%H%M%S).${DPDEVICE}

You have to insert a '$' before the '('.
# 3  
Old 02-03-2010
Thanks a lot it worked , but with

chmod: WARNING: can't access /home/MyHome/out/outFile &

I also want one of the String from outFile which shows the current status of the server should be echoed .. as an output statement .. can you suggest me .
# 4  
Old 02-03-2010
You just rename $OUTFILE to $OUTFILE$(date +%y%m%d-%H%M%S).${DPDEVICE}, so ${OUTFILE} does no longer exist when to try to change it's access mode. You have to save the new name in a variable for later use, because 'date' might give a different timestamp when you rerun 'date'.

Code:
NEWFILE=$OUTFILE$(date +%y%m%d-%H%M%S).${DPDEVICE}
mv -if $OUTFILE $NEWFILE
...
chmod 755 $NEWFILE

To display a certain line from the outfile, you can use 'grep' or 'awk' for example.

---------- Post updated at 09:06 ---------- Previous update was at 09:03 ----------

Just recongnized, that NEWFILE does not get set in the else-part just before the chmod. So you have to set NEWFILE=$OUTFILE in the else-part or - if it is OK to run 'chmod' only in the then-block - move 'chmod' just before the 'mv' command:

Code:
chmod 755 $OUTFILE
mv -if $OUTFILE $OUTFILE$(date +%y%m%d-%H%M%S).${DPDEVICE}

# 5  
Old 02-03-2010
Now also im seeing the same issue with different timestamp on the file name even after i changed the parameter.

Code:
DATE=`date`
NEWFILE=$OUTFILE$(date +%y%m%d-%H%M%S).${DPDEVICE}.${2}
ssh -T ${DPDEVICE} < $INFILE >> $OUTFILE
if [ $? -eq 0 ]
then
   echo " Report Logging . . "
   chmod 777 $NEWFILE
   mv -if $OUTFILE $NEWFILE
else
   echo " Conection error.Please Validate the NODE name"
fi

[output]

$ ./routing.sh tmox6324-ra enable

***********************************************************
Preparing to service at request to Device tmox6324-ra in Question . . .
***********************************************************


Node does exist

Enabling the Device in few seconds
Report Logging . .
chmod: WARNING: can't access /home/MyHome/out/outFile100203-023547.tmox6324-ra.enable

[/output]

Created Output Files


-rw-r--r-- 1 1957 Feb 3 02:29 outFile100203-022952.tmox6324-ra.enable
-rw-r--r-- 1 1958 Feb 3 02:31 outFile100203-023128.tmox6324-ra.disable
-rw-r--r-- 1 1957 Feb 3 02:31 outFile100203-023155.tmox6324-ra.enable
# 6  
Old 02-03-2010
Ah, I see. I think, I was not clear about this. You have to swap chmod and mv like:
Code:
   mv -if $OUTFILE $NEWFILE
   chmod 777 $NEWFILE

That should do the trick.
# 7  
Old 02-03-2010
Oh yeah !! it worked .. gr8 .. but new challlenge for me is to pull the string
{ admin-state enabled/disabled } from the latest created outFile . This string line count is 12. can you give me any such syntax to insert ..this in to my output window .
Login or Register to Reply

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
Syntax error near unexpected token `(' drew77 Ubuntu 15 3 Weeks Ago 05:36 AM
Syntax error near unexpected token 'do' gillesi UNIX for Beginners Questions & Answers 3 01-03-2018 12:33 PM
Syntax error near unexpected token `(' ranabhavish How to Post in the The UNIX and Linux Forums 1 05-09-2017 08:10 AM
Syntax error near unexpected token `else' masubram Shell Programming and Scripting 14 08-02-2016 06:29 AM
Syntax error near unexpected token y33t Shell Programming and Scripting 14 11-29-2014 08:33 AM
Syntax error near unexpected token `|' Meacham12 Shell Programming and Scripting 7 11-26-2013 12:50 PM
Syntax error near unexpected token '(' sgradywhite Shell Programming and Scripting 7 09-15-2013 02:37 PM
Syntax error near unexpected token `else' Aryan12345 Shell Programming and Scripting 6 05-23-2013 12:09 PM
Syntax error near unexpected token `(' iiiiiiiiiii Shell Programming and Scripting 2 05-02-2012 10:26 AM
Syntax error near unexpected token 'else' Ren_kun Homework & Coursework Questions 6 08-18-2011 05:40 AM
Syntax error near unexpected token `}' please help Fisheh Shell Programming and Scripting 6 06-08-2011 11:09 AM
syntax error near unexpected token '{ MandyR UNIX for Advanced & Expert Users 2 05-14-2010 09:03 AM
Syntax error near unexpected token `done' Lenora2009 Shell Programming and Scripting 21 04-27-2010 09:00 PM
Syntax error near unexpected token tomailraj UNIX for Advanced & Expert Users 2 08-23-2009 09:07 AM
sh syntax error unexpected token done NullPointer Shell Programming and Scripting 5 04-30-2009 09:28 AM