Syntax in a simple script


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Syntax in a simple script
# 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; 10-12-2019 at 02: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

Test Your Knowledge in Computers #376
Difficulty: Medium
HP-UX was UNIX V7 compliant.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Syntax error on script

Evening All (or morning for some), Could anyone have a look at the below and advise where i've going wrong with the syntax as i keep getting the below error while trying to run. Any help would be really apprecaited. ./testout: line 13: syntax error near unexpected token `else' ... (4 Replies)
Discussion started by: mutley2202
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 in script

Hey guys keep having problems with the below script syntax error near unpexpected token '0' exit 0 I have two directorys backups and Usr in the usr i have sub dir's wp,ss,pic which i would like to back up (copy those directorys to the backups directory) with user acknowledgement from command line.... (2 Replies)
Discussion started by: Spartukus
2 Replies

8. Shell Programming and Scripting

Syntax error with a script

Hi I not sure what is wrong with my script... when I try to run it I get the follow error: "remove: syntax error at line 77: `end of file' unexpected" Thanks in advance for any help. ans=y while do while : do echo "Please enter a name that you... (3 Replies)
Discussion started by: simpsonjr
3 Replies

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

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

Featured Tech Videos