Syntax error near unexpected token `('


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Syntax error near unexpected token `('
# 1  
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 04:30 AM.. Reason: Fixed code tags
# 2  
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  
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  
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  
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  
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  
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 for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #322
Difficulty: Easy
HTML stands for Hypertext Markdown Language.
True or False?

10 More Discussions You Might Find Interesting

1. Ubuntu

Syntax error near unexpected token `('

detect_mouse_mvt.sh /home/andy/bin/detect_mouse_mvt.sh: line 4: syntax error near unexpected token `(' /home/andy/bin/detect_mouse_mvt.sh: line 4: `fh = file('/dev/input/mice')' #!/bin/bash # # fh = file('/dev/input/mice') while True: fh.read(3) print 'Mouse... (15 Replies)
Discussion started by: drew77
15 Replies

2. UNIX for Beginners Questions & Answers

Syntax error near unexpected token 'do'

Hello all, Please i have this command i used to zip different files in differents directory, but i have an error. Note that when i run the command in one directory it works fine. /X5/WORK/BGH/INV/REG/pdf/SEND/BGH12523/1/*.fo /X5/WORK/BGH/INV/REG/pdf/SEND/BGH24523/1/*.fo... (3 Replies)
Discussion started by: gillesi
3 Replies

3. Shell Programming and Scripting

Syntax error near unexpected token

Hi all, I have a simple script that doesn't work somehow. I can't seem to be spotting the cause of the malfunction. count=$((1)) for item in `cat test1.txt` printf %s `sed -n $((count))p test2.txt` > test3.txt count=$((count+1)) do something done I get ; ./why.sh: line 3:... (14 Replies)
Discussion started by: y33t
14 Replies

4. Shell Programming and Scripting

Syntax error near unexpected token '('

I tried to execute the code but I got this error ./Array.c: line 9: syntax error near unexpected token '(' ./Array.c: line 9: ' nvals = get_data(a,MAXARRAY);' and #include<stdio.h> #define MAXARRAY 1000 main() { int a, nvals; nvals =... (7 Replies)
Discussion started by: sgradywhite
7 Replies

5. Shell Programming and Scripting

Syntax error near unexpected token `else'

Hi, I am trying to read the session log through script. But it keeps showing me some error near. I have tried everything. Even tried converting the script using sed command to remove the hidden characters(\r).But nothing seems to be working.Below is the script : #!/bin/bash cd... (6 Replies)
Discussion started by: Aryan12345
6 Replies

6. Shell Programming and Scripting

Syntax error near unexpected token `('

What do I do here? #!/bin/bash payload=-1 AND 1=IF(21,BENCHMARK(5000000,MD5(CHAR(115,113,108,109,97,112))),0)# hash=`echo -n $payload md5sum tr -d 'n' sed 'ss-sg' md5sum tr -d 'n' sed 'ss-sg'` curl --data cs2=chronopay&cs1=$payload&cs3=$hash&transaction_type=rebill... (2 Replies)
Discussion started by: iiiiiiiiiii
2 Replies

7. Shell Programming and Scripting

Syntax error near unexpected token `}' please help

I'm going mad not being able to get this to work. im assuming its only a simple mistake but its driving me bonkers trying to find it. Please if you can help me it would save me pulling my hair out!! Thanks #!/bin/bash -xv # #Config name="TEST Server" + name='TEST Server'... (6 Replies)
Discussion started by: Fisheh
6 Replies

8. Shell Programming and Scripting

syntax error near unexpected token `='

Hi all, This is a script which converts hex to bin. However am finding an error while executing syntax error near unexpected token `=' `($hexfile, $binfile) = @ARGV;' I am running using ./fil.pl <hexfile> <binfile> ################################################### # # this script... (3 Replies)
Discussion started by: jaango123
3 Replies

9. UNIX for Dummies Questions & Answers

Syntax error near unexpected token

hi! just want to seek help on this error: syntax error near unexpected token 'do this is my script # !/bin/sh # for y in 27 25 do exemmlmx -c "ZEEI;" -n XRT$y >> blah done what can be wrong? thanks! (6 Replies)
Discussion started by: engr.jay
6 Replies

10. UNIX for Advanced & Expert Users

syntax error near unexpected token '{

Hi, I am running the following script through cygwin and getting below mentioned error. ******************************************* #!/bin/sh # constants WORK_DIR="deploy" INFOFILE="deploy.info" INTROFILE="Intro.sh" CMGMT_PKG="com.kintana.cmgmt.deploy" DEPLOY_PREFIX="mitg" ... (2 Replies)
Discussion started by: MandyR
2 Replies

Featured Tech Videos