Syntax error near unexpected token `('


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Syntax error near unexpected token `('
# 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 03: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 Ask a Question

Previous Thread | Next Thread

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

Dears, While executing the below script im getting the error at line 30. Please let me know what changes to be done to fix this. test.sh: line 30: syntax error near unexpected token `done' test.sh: line 30: ` done ' #!/bin/sh # Rev. PA1 # author: eillops # date: 26-04-2018 # #... (1 Reply)
Discussion started by: Kamesh G
1 Replies

3. How to Post in the The UNIX and Linux Forums

Syntax error near unexpected token `('

I have 2 files like a.txt and b.txt and the content is as below cat a.txt 810750125 117780 /BSCSQAT4A/bscsqat4a/lib/jar/wclt_common.jar 1803152428 13300 /BSCSQAT4A/bscsqat4a/lib/jar/WFMSSupportTool.jar 2663502779 67049 /BSCSQAT4A/bscsqat4a/lib/jar/wma.jar 687942896 665272... (1 Reply)
Discussion started by: ranabhavish
1 Replies

4. 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

5. 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

6. 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

7. 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

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 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

10. Shell Programming and Scripting

sh syntax error unexpected token done

I'm getting the following error: line 21: syntax error near unexpected token `done` line 21: `done` and I haven't been able to figure out why. Here is my code #!/bin/sh if ; then echo 'Usage: rename getexp/replStr ' exit 0 fi arg = $1 shift while ; do (5 Replies)
Discussion started by: NullPointer
5 Replies
Login or Register to Ask a Question