bash loops


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting bash loops
# 1  
Old 05-05-2012
bash loops

hello

i'm writing a script and I want to use a for loop inside a while loop as following:

Code:
while read line; 
do	
    echo $line
	
    for i in $vrm;
	do
	    echo $i
        done
done < './contacts'

when i use just the while loop it prints the lines from file ./contacts just fine
but when i put the for loop,first it prints the values of the variable $vrm and then the $line.Even more if i put an if statement inside the for loop it only works for the first line of the file.
Is there a priority of the loops?
Or am I doing something wrong in the script?
# 2  
Old 05-05-2012
Maybe the first line in contacts is an empty line?
# 3  
Old 05-05-2012
No,no it's not..
My syntax though seems ok right?
# 4  
Old 05-05-2012
Yes, it looks OK, apart from not double quoting the variable references. The semicolons are only required when do is on the same line, but they won't hurt.
# 5  
Old 05-05-2012
Quote:
Originally Posted by Scrutinizer
Yes, it looks OK, apart from not double quoting the variable references. The semicolons are only required when do is on the same line, but they won't hurt.
actually I tried to figure out whats going on and when I put a simple echo command inside the if statement it is ok
when,instead of the echo,I try to assign a variable like this:

mlt="$(./getmt $1 $2 $i)"

after it goes only one time inside the if statement and calls the function then it stops the WHILE loop although it finishes the for loop.

The assignment is ok,I checked it alone and inside the for loop without the while loop and works fine.
So once it goes in the IF it finishes the FOR but not the WHILE loop
and that happens only with the assignment not with the echo command...

Code:
while read line; 
do	
    echo $line
	
    for i in $vrm;
	do
	     echo $i
             if then
                 mlt="$(./getmt $1 $2 $i)"                 
             fi
        done
done < './contacts'

# 6  
Old 05-05-2012
The if statement is not valid syntax

Last edited by Scrutinizer; 05-05-2012 at 02:31 PM..
# 7  
Old 05-05-2012
Quote:
Originally Posted by Scrutinizer
The if statement is not valid syntax
this is how I do it

Code:

arr=($line)
for i in $vrm;
	do
	     echo $i

             if [[ "${arr[N-1]}" = "$i" ]]; then
                 mlt="$(./getmt $1 $2 $i)"  
             fi
       done

and the command that causes the problem is in ./getmt
and is:

lt="$(rsh $2 w $3 )"

If i put an echo instead of "lt" assignment in ./getmt runs for every line of while loop.Also if I put an echo instead of calling the ./getmt it also runs for every line of while loop.
Only when I do the assignment of lt it stops once it goes inside the if statement..And again,it stops the while loop,it finishes the for loop..
It really drives me crazy!Why does it stop?Please help
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Correlation Between 3 Different Loops using Bash

I have 3 loops that I use to determine the permission level of AWS user accounts. This array lists the AWS policy ARN (Amazon Resource Name): for ((policy_index=0;policy_index<${#aws_managed_policies};++policy_index)); do aws_policy_arn="${aws_managed_policies}" ... (1 Reply)
Discussion started by: bluethundr
1 Replies

2. Shell Programming and Scripting

Bash: How to use read with conditions & loops

Hello, Below I try to control that the input is good an IP : #!/bin/bash cp /home/scripts/choice_interfaces.txt /home/scripts/interfaces.txt chmod 644 /home/scripts/interfaces.txt echo -e "Please enter the network informations into the /etc/network/interfaces file, complete them below... (9 Replies)
Discussion started by: Arnaudh78
9 Replies

3. Shell Programming and Scripting

Pipe 2 bash loops together

What is the proper way to run two bash loops in the same command? The two below loops run separately, the problem is when I pipe them I get an error that the file used for the second loop does not exist. I am not sure how to wait for the first loop to complete and then start the second. Thank... (10 Replies)
Discussion started by: cmccabe
10 Replies

4. Shell Programming and Scripting

while loops and variables under bash

Hi, This is probably going to be very simple but i came across something i can't quite explain. Here is the situation: i have a list of files, which i'd like to process one by one (get the size, make some tests, whatever) and generate some statistics using different variables. Something... (5 Replies)
Discussion started by: m69w
5 Replies

5. Homework & Coursework Questions

Bash if and loops help

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Your shell script should continue to execute until the user selects option 4 2. Relevant commands, code,... (2 Replies)
Discussion started by: boyboy1212
2 Replies

6. UNIX for Dummies Questions & Answers

Bash loops and variable scope

Hi All, I've been researching this problem and I am pretty sure that the issue is related to the while loop and the piping. There are plenty of other threads about this issue that recommend removing the pipe and using redirection. However, I haven't been able to get it working using the ssh and... (1 Reply)
Discussion started by: 1skydive
1 Replies

7. UNIX for Dummies Questions & Answers

A copy paste problem with loops in bash

Hello All, i have a really strange copy paste problem. When I write some loops in an editor for example: for j in 1 2 3 do echo "$j" done and I want to paste it to the shell, the result in the shell is: for j in 1 2 3; do e; other commands work fine and if a copy paste... (4 Replies)
Discussion started by: creamcheese
4 Replies

8. Shell Programming and Scripting

bash scripting: using multiple 'for loops'??

Hey guys, I'm kinda a noob at scripting. I am trying to create a script that uses multiple for loops with the lsiutility to monitor disk health on a system. The script runs, but it will continually echo an infinite number of LogVolumes when there are only 2 per virtual disk on my server. It's... (2 Replies)
Discussion started by: tank126
2 Replies

9. Shell Programming and Scripting

[bash] IF is eating my loops

Hi! Could someone explain me why the below code is printing the contents of IF block 5 times instead of 0? #!/bin/bash VAR1="something" VAR2="something" for((i=0;i<10;i++)) do if(($VAR1=~$VAR2)) then echo VAR1: $VAR1 echo... (3 Replies)
Discussion started by: machinogodzilla
3 Replies

10. Shell Programming and Scripting

arrays and while loops in bash

hi guys, i have an array called ARRAY which has elements in it... i am trying to assign elements of ARRAY to master_array.. i get a =: command not found error.. i=0 while do ${master_array}=${ARRAY} ((i++)) done is there something i am missing? (4 Replies)
Discussion started by: npatwardhan
4 Replies
Login or Register to Ask a Question