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  
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.
Code:
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 ;
Code:
./why.sh: line 3: syntax error near unexpected token `printf'
./why.sh: line 3: `  printf %s `sed -n $((count))p test2.txt` > test3.txt'

Any idea why this might be happening ?


Thanks.

Last edited by Scrutinizer; 11-28-2014 at 09:28 PM.. Reason: quote tags -> code tags
# 2  
Hi y33t

What do you want to achieve with this script?
You are ignoring the input from test1.txt.

Better use $(cmd), not the old fashoned `cmd`,
this also helps to avoid quotation-errors by mistaking ' with `.

What is that sed command supposed to do?
# 3  
Try
Code:
count=1
for item in `cat test1.txt`
  printf %s `sed -n "$count"p test2.txt` > test3.txt
  count=$((count+1))
  do
  something
done

The only difference I see between
Code:
  printf %s `sed -n "$count"p test2.txt` > test3.txt

and
Code:
  sed -n "$count"p test2.txt > test3.txt

is that the printf variant will not add a trailing newline character to the sed output.

--------
EDIT: Missed something very obvious:

The valid for syntax is:
Code:
for NAME [in WORDS ... ] ; do COMMANDS; done

not
Code:
for NAME [in WORDS ... ] ; COMMANDS do COMMANDS; done

Hope this helps.

Last edited by junior-helper; 11-28-2014 at 09:26 PM.. Reason: noticed invalid "for" syntax
# 4  
There is a do statement missing.
Code:
for item in `cat test1.txt`
do

Usually a better approach is something like this:
Code:
while read item
do
  ....
done <test1.txt >test3.txt


Last edited by Scrutinizer; 11-28-2014 at 09:32 PM..
# 5  
Quote:
Originally Posted by Scrutinizer
There is a do statement missing.
Code:
for item in `cat test1.txt`
do

Usually a better approach is something like this:
Code:
while read item
do
  ....
done <test1.txt >test3.txt

Now the error is gone but I get a completely irrelevant output ;

Code:
$./test.sh
ountpountpountpountpountpountpount

# 6  
What is the content of ./test.sh?
# 7  
Please do not leave people guessing. Be complete. Show a representative sample of input, desired output, attempts at a solution and specify what OS and version are being used.
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 #910
Difficulty: Easy
In C, you can declare a pointer as follows: data_type * pointer_variable_name;
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 '('

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

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

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

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

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

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

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 `('

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. #!/bin/bash Script Creation Date 01/21/2010 Author baraghun ... (7 Replies)
Discussion started by: raghunsi
7 Replies

Featured Tech Videos