[bash] IF is eating my loops


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting [bash] IF is eating my loops
# 1  
Old 04-08-2009
Question [solved][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?

Code:
#!/bin/bash

VAR1="something"
VAR2="something"

for((i=0;i<10;i++))
do
         if(($VAR1=~$VAR2))
         then
                 echo VAR1: $VAR1
                 echo VAR2: $VAR2
                 echo -----------
         fi
done


Last edited by machinogodzilla; 04-08-2009 at 10:24 AM..
# 2  
Old 04-08-2009
I don't know what that if expression is supposed to do. I've only seen double round-braces used in for statements or math expressions, and =~ is bash's regular expression operator. If you're doing string comparisons:

Code:
#!/bin/bash

VAR1="something"
VAR2="something"

for((i=0;i<10;i++))
do
        if [ "$VAR1" = "$VAR2" ]
        then
                 echo VAR1: $VAR1
                 echo VAR2: $VAR2
                 echo -----------
        fi
done

# 3  
Old 04-08-2009
what's the meaning of this?
Code:
     if(($VAR1=~$VAR2))

What are you trying to say?
'man bash' says, but your syntax is wrong:
Code:
     ! ~  logical and bitwise negation

# 4  
Old 04-08-2009
I should have written 'leaking' not 'eating'.

Yes, my syntax was incorrect (again) after blindly following some random tutorials (P.S. and I even know why I was following them now - I had tried the loop with square bracket syntax before but the space between if and [ was missing so the whole thing wasn't working, a space...).

Thank you for your help!

Last edited by machinogodzilla; 04-08-2009 at 09:00 PM..
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

bash loops

hello i'm writing a script and I want to use a for loop inside a while loop as following: 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... (13 Replies)
Discussion started by: vlm
13 Replies

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

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

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

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

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

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