syntax error near unexpected token...what caused?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting syntax error near unexpected token...what caused?
# 1  
Old 05-11-2007
Question syntax error near unexpected token...what caused?

Dear all,

When I tried to run receive.sh,it returned following errors.
syntax error near unexpected token `do

Code:
#!/usr/bin/ksh
GlobalValueReceive=r
GlobalValueWorking=w
GlobalValueTemp=t

$exec 0<Property
while read LineInProperty
do
  if [ ${LineInProperty:0:11} = New_receive ]
  then
     $GlobalValueReceive = ${LineInProperty:25} 
  fi
  if [ ${LineInProperty:0:11} = New_working ]
  then
     $GlobalValueWorking = ${LineInProperty:25}
  fi
  if [ ${LineInProperty:0:8} = New_temp ]
  then
     $GlobalValueTemp = ${LineInProperty:22}
  fi
done

(($#<2)) && { print "2 parameters: \n    p_seq_no\n    p_sys_ind"; exit 1; }

typeset -i pass_check
typeset -i p_seq_id

p_seq_id=$1
p_sys_ind=$2
pass_check=0

# file's count
check_count=`ls -l ${GlobalValueReceive}/${p_sys_ind}.Witness*|grep "^-"|wc -l`

print ${check_count} seq files

for i in $(ls ${GlobalValueReceive}/${p_sys_ind}.Witness*)
do
  seq_id=${i##*Witness.}
  seq_id=${seq_id%%.*}
  mv ${GlobalValueReceive}/${p_sys_ind}.*.${seq_id}.* ${GlobalValueTemp}/dos/
done

for i in $(ls ${GlobalValueTemp}/dos/*)
do
  #dos2ux ${i} > ${GlobalValueTemp}/dos2/${i##${GlobalValueTemp}/dos/}
cat ${i} > ${GlobalValueTemp}/dos2/${i##${GlobalValueTemp}/dos/}
cat ${GlobalValueTemp}/dos2/${i##${GlobalValueTemp}/dos/} | tr -d "
" > ${GlobalValueTemp}/${i##${GlobalValueTemp}/dos/}   
  rm ${i}
done

print files have been moved to temp folder

for i in $(ls ${GlobalValueTemp}/${p_sys_ind}.Witness*)
do
  print begin to check the files with seq_id ${p_seq_id}
  if [ ${p_sys_ind} = 111111 ]
  then
    /home/bodi/bin/ef_validate.sh ${p_seq_id}
  else
    /home/bodi/bin/mp_validate.sh ${p_seq_id}  
  fi
  
  return_code=$?
  if [ ${return_code} = 0 ]
  then
    print file with seq_id ${p_seq_id} passed!
    mv ${GlobalValueTemp}/${p_sys_ind}.*.${p_seq_id}.* $GlobalValueWorking/
    mv $GlobalValueWorking/${p_sys_ind}.Witness.${p_seq_id}.*.txt $GlobalValueWorking/${p_sys_ind}.Witness.${p_seq_id}.txt 
    pass_check=${pass_check}+1
    p_seq_id=${p_seq_id}+1
  else
    print file with seq_id ${p_seq_id} failed!
    for j in $(ls ${GlobalValueTemp}/${p_sys_ind}.*.${p_seq_id}.*)
    do
      mv ${j} ${GlobalValueWorking}/${return_code}.${j##${GlobalValueTemp}/}.rej
    done
    for j in $(ls ${GlobalValueTemp}/${p_sys_ind}.*)
    do
      mv ${j} ${GlobalValueWorking}/1.${j##${GlobalValueTemp}/}.rej
    done
    break
  fi
done

print quit with ${pass_check} passed check  
exit ${pass_check}


Appreciate to any helper.
Thanks.
# 2  
Old 05-11-2007
Code:
exec 0<Property  # $exec replaced by exec
while read LineInProperty
do
  if [ ${LineInProperty:0:11} = New_receive ]
  then
     GlobalValueReceive=${LineInProperty:25} # $ removed + No spaces around =
  fi
  if [ ${LineInProperty:0:11} = New_working ]
  then
     GlobalValueWorking=${LineInProperty:25}
  fi
  if [ ${LineInProperty:0:8} = New_temp ]
  then
     GlobalValueTemp=${LineInProperty:22}
  fi
done

Execute your script with the trace option -x

Jean-Pierre.
# 3  
Old 05-11-2007
Quote:
Originally Posted by aigles
Code:
exec 0<Property  # $exec replaced by exec
while read LineInProperty
do
  if [ ${LineInProperty:0:11} = New_receive ]
  then
     GlobalValueReceive=${LineInProperty:25} # $ removed + No spaces around =
  fi
  if [ ${LineInProperty:0:11} = New_working ]
  then
     GlobalValueWorking=${LineInProperty:25}
  fi
  if [ ${LineInProperty:0:8} = New_temp ]
  then
     GlobalValueTemp=${LineInProperty:22}
  fi
done

Execute your script with the trace option -x

Jean-Pierre.
Hello,Mr.Jean-Pierre

Sorry for any misreading ,did you mean that I should modify the code like following?

Quote:
$exec 0<Property
while read LineInProperty
do
if [ ${LineInProperty:0:11} = New_receive ]
then
GlobalValueReceive = {LineInProperty:25}
fi
if [ {LineInProperty:0:11} = New_working ]
then
GlobalValueWorking = {LineInProperty:25}
fi
if [ ${LineInProperty:0:8} = New_temp ]
then
GlobalValueTemp = {LineInProperty:22}
fi
done
I executed the sh file with sh filename.sh,is this correct?

Dear Mr.Jean,I just touched the Korn shell script several days,thank you so much for your assistance.

Regards,
Joshua.Duan
# 4  
Old 05-11-2007
No he meant:


set -x

exec 0<Property
while read LineInProperty
do
if [ ${LineInProperty:0:11} = New_receive ]
then
GlobalValueReceive={LineInProperty:25}
fi
if [ {LineInProperty:0:11} = New_working ]
then
GlobalValueWorking={LineInProperty:25}
fi
if [ ${LineInProperty:0:8} = New_temp ]
then
GlobalValueTemp={LineInProperty:22}
fi
done
# 5  
Old 05-13-2007
Still had problem

Hi,I've corrected the code as above.The file ran normally,but it had a error prompt: :invalid option line 2 : set: -2 (the snap shot is in the attachment.)

I can't remove set -x,or the code won't run.What shall I do?

Code:
#!/usr/bin/ksh
set -x

GlobalValueWorking=w


exec 0<Property

while read LineInProperty
do
  if [ ${LineInProperty:0:11} = New_working ]
  then
     GlobalValueWorking={LineInProperty:25}
  fi
done

# 6  
Old 05-14-2007
I don't get why the set -x option would stop this running if removed, what happens when you do?
# 7  
Old 05-14-2007
Hi,LiquidChild

The issue is resloved,I edited the code in Windows and uploaded it to a Unix machine,so the error occured,I format it to Unix format with UltraEditor and modified sentences such like
Quote:
while read LineInProperty
do
if [ ${LineInProperty:0:11} = New_working ]
then
GlobalValueWorking=${LineInProperty:25}
fi
done
then all the sh files ran well in Unix server.

I don't know which release the Kore shell is,typed $ print $(.sh.version) and $ what /bin/ksh entirely returned "Command not found",but anyway,appreciate your kind aid.
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 `else'

Hello every one!! I don't know where I am going wrong but I am finding it difficult to clear this error of syntax error near unexpected token `else' I am writing a simple shell script to find a file in a directory and if found execute that else return an error to the log file ... (14 Replies)
Discussion started by: masubram
14 Replies

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

6. Shell Programming and Scripting

Syntax error near unexpected token `|'

Hi All; I try to write a bash code and I am using command substitution. My code is like: #!/bin/bash IP="10.0.0.1 10.0.0.2" PORT="22 80" USERNAME="admin" SCRIPT_HOST="adminHost" HOME_DIR=/home/admin SCRIPT_DIR=$HOME_DIR/scripts script="sudo /my_remote_script.sh" SSH="/usr/bin/ssh... (7 Replies)
Discussion started by: Meacham12
7 Replies

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

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

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

Syntax error near unexpected token `done'

Hi all, Here is a simple script that is working in one server and is giving a syntax error in other server. Can somebody help me ? #!/bin/bash # ftp files done < $file errors: I tried..with no success: if ; then (21 Replies)
Discussion started by: Lenora2009
21 Replies
Login or Register to Ask a Question