Syntax in a simple script


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
# 1  
Syntax in a simple script

I am in the process of writing a script. A very preliminary version is giving a syntax error. The script is
Code:
#!/bin/bash
#file1=’./data/heu/hout1’

exec 10<&0
exec < './data/heu/hout1'
#file1=’./data/heu/hout1-
i=1
j=0
while read file1
do


	echo $file1
	echo $i
	if[$i==1] then
		arr1[$j]=file1
		$((i++))
	elif[$i==2] then
		arr1[$j]=file1
		$((i++))
	else
		$i=0
		$((j++))
	fi
done

The following errors get generated
Code:
line 21: syntax error near unexpected token `else'

Appreciate any inputs.
Moderator's Comments:
Mod Comment Use code tags to wrap code fragments or data samples

Last edited by Yoda; 4 Days Ago at 01:25 PM..
# 2  
I noticed several syntax errors in your script.
  • If and elif conditional expressions missing blank spaces
  • Use -eq instead for numerical comparison
  • One can increment variable within (( )) without a $
  • Variable assignment $i=0 is incorrect. Remove the $
  • Array assignment missing $ sign before variable: file1

Here is the code with corrections:-
Code:
while read file1
do
        echo $file1
        echo $i
        if [ $i -eq 1 ]; then
                arr1[$j]="$file1"
                (( i++ ))
        elif [ $i -eq 2 ]; then
                arr1[$j]="$file1"
                (( i++ ))
        else
                i=0
                (( j++ ))
        fi
done

# 3  
Many thanks for the detailed feedback. It will help me move forward. Is this code fine for reading the file?
Code:
exec 10<&0
exec < './data/heu/hout1'

# 4  
The first line backs up &0 (=stdin) to &10.
The next line associates &0 with the file (the file is opened for reading).
Then all following stdin/default reading is from the file. Here it is the read command in the loop.
The reading from the file would stop if &0 were restored via exec 0<&10.

Usually, instead of the exec association, you see a temporary association:
Code:
while read ...
do
...
done < './data/heu/hout1'

After the "redirected" while-do-done block the original stdin is back.
Login or Register for Dates, Times and to Reply

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

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

First Script Syntax Error

So, I'm writing my first shell script to try to speed up the process of creating lyric files for mocp and I don't know what the error is, but considering how short the code is, I'm betting it's something super-obvious. line 7: syntax error near unexpected token `echo' line 7: ` echo... (4 Replies)
Discussion started by: D351
4 Replies

2. Shell Programming and Scripting

Script syntax help

#!/bin/bash if ; then echo "Lipsa IP"; exit; fi i=1 ip=$1 while ; do if ; then rand=`head -$i pass_file | tail -1` user=`echo $rand | awk '{print $1}'` pass=`echo $rand | awk '{print $2}'` CMD=`ps -eaf | grep -c mysql` if ; then ./mysql $ip $user $pass & else sleep 15... (6 Replies)
Discussion started by: galford
6 Replies

3. Linux

How to execute a simple select script using a shell script?

Hi team, I have two select statements and need to run them using SYSDBA user select * from temp_temp_seg_usage; select segment_name, tablespace_name, bytes/ (1024*1024) UsedMb from dba_segments where segment_name='TEMP_TEMP_SEG_USAGE'; Need to run this using a shell script say named... (1 Reply)
Discussion started by: pamsy78
1 Replies

4. Shell Programming and Scripting

Help Simple FTP Script Here Syntax

I have a list of IP address and want to be assess whether FTP is allowing FTP access. I don't want to use lousy NT shell, but cannot get the syntax down on this. ftphosts.txt is a simple list of IP adresses. I want to iterate through the IPS and do a simple ftp IPadress user ftp password... (15 Replies)
Discussion started by: gdotoli
15 Replies

5. Shell Programming and Scripting

Help making simple perl or bash script to create a simple matrix

Hello all! This is my first post and I'm very new to programming. I would like help creating a simple perl or bash script that I will be using in my work as a junior bioinformatician. Essentially, I would like to take a tab-delimted or .csv text with 3 columns and write them to a "3D" matrix: ... (16 Replies)
Discussion started by: torchij
16 Replies

6. Shell Programming and Scripting

Syntax error calling TCL script from shell script

hello everyone i am beginner on shell scripting .and i am working on my project work on ad hoc network i wrote a batch (.sh) to do a looping and execute a tcl script i wrote before in each iteration ..but i got this problem " syntax error near unexpected token `('... (1 Reply)
Discussion started by: marcoss90
1 Replies

7. Shell Programming and Scripting

syntax error on script

Hello all, I am trying to write a little script to create a file and I keep getting the below error and cant see where my syntax mistake(s) is. please help... the script: FILE="/u/e477059/Unix_Machines/LISTS" for X in `cat ${FILE}/list` do ssh $X "echo $X; cd /var/tmp; ... (2 Replies)
Discussion started by: rookieuxixsa
2 Replies

8. Programming

Tools for writing a simple syntax checker?

I'm trying to write a small utility for syntax checking. I've tried using Flex/Bison, but these seem too advanced for my task. A simpler tool would be appreciated. (1 Reply)
Discussion started by: Ilja
1 Replies

9. Shell Programming and Scripting

Syntax error in script

I get this error when I try to run my script (BTW, this is a simple script I am supposed to write for my class) $ menuscript menuscript: syntax error at line 89 : `"' unmatched $ Here is the code (Any help is greatly appreciated) (Line numbers included) 1 #!/bin/ksh 2 ... (2 Replies)
Discussion started by: KindHead
2 Replies

10. Shell Programming and Scripting

Syntax error in a script...

Hi All, I have been fighting with a syntax error for the last 2 days, still haven't got the solution. Could you please help me, your help will be greatly appreciated. In my script I am getting a error in a for loop, its similar to the one as is below. for v_id in v1 v2 v3 v4 do... (8 Replies)
Discussion started by: rajus19
8 Replies

Featured Tech Videos