while loop in shell scripting


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting while loop in shell scripting
# 1  
Old 02-01-2010
while loop in shell scripting

Hi,
I have a doubt in usage of while loop in Shell script as Iam new to this.

My requirement is that,I have two different directories containing some files which move files to other folder after parsing is done.
In my script i wanted to add a while loop which checks for the count in these two folders and once it is 0 then executes a function else will sleep for sometime until the count equals 0 and then moves on.
Below is the way Iam using:
Code:
cd /dir1
ls |wc >> list
c1=$(cut -c 1-8 list
cd /dir2
ls |wc >> list1
c1=$(cut -c 1-8 list1
while [ $c1 -eq 0 && $c1 -eq 0 ]
do
function
sleep 1000
done
}

Is this the correct way of using the while loop?

Regards,
Jyothi
jyothi_wipro
# 2  
Old 02-01-2010
Yes the loop is correct syntax

Code:
while [ $x -le 10 ]
do
  echo "You can add your commands"
  x=`expr $x + 1`
done

# 3  
Old 02-01-2010
Yep, I see your loop syntax to be correct. I do have a small sugession for getting number of files in a directory. Below code uses same logic as yours but tuned a little.
Code:
c1=`ls /dir1 | wc | cut -c1-8`
c2=`ls /dir2 | wc | cut -c1-8`

# 4  
Old 02-01-2010
Quote:
Originally Posted by jyothi_wipro
Hi,
I have a doubt in usage of while loop in Shell script as Iam new to this.

My requirement is that,I have two different directories containing some files which move files to other folder after parsing is done.
In my script i wanted to add a while loop which checks for the count in these two folders and once it is 0 then executes a function else will sleep for sometime until the count equals 0 and then moves on.
Below is the way Iam using:
Code:
cd /dir1
ls |wc >> list
c1=$(cut -c 1-8 list
cd /dir2
ls |wc >> list1
c1=$(cut -c 1-8 list1
while [ $c1 -eq 0 && $c1 -eq 0 ]
do
function
sleep 1000
done
}

Is this the correct way of using the while loop?

Regards,
Jyothi
your loop is wrong you can't use && as you did;
correction:-
Code:
while [ $c1 -eq 0 -a $c1 -eq 0 ]
do
function
sleep 1000
done
}

or
while [ $c1 -eq 0 ] && [ $c1 -eq 0 ]
do
function
sleep 1000
done
}

SmilieSmilieSmilie
# 5  
Old 02-02-2010
while loop in shell scripting

Thanks a lot for all ur replies.
Is there a way to change the code for my below requirement?

The code which i specified in the last post has initial count of the files in the dir.But the files get on decreasing after some time and atlast become 0.
But the while loop does not ge executed since the count is never 0 rather it has the initial count.
The loop shld continuously chk for the count and when it is 0 the statements shld be executed.
How will i keep track of the count ie ls = 0 of the dir.

Can someone please help me out soon....
jyothi_wipro
# 6  
Old 02-02-2010
use until instead of while.

look at its usage in the forum old posts

Code:
until [ condition ]
do
commands
done

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to get the for loop output from a remote server in UNIX shell scripting?

Hi, I am using ksh , when i try to use for loop i am getting the expected output. $for variable in $(ps -fu user | grep -i something/ | grep -i something | grep -v grep | awk '{print $2}');do > grep $variable /tmp/some_path/*/* > done when tried the below to remote server, getting... (4 Replies)
Discussion started by: karthikram
4 Replies

2. Shell Programming and Scripting

If else condition inside for loop of awk command in UNIX shell scripting

Hi , Please excuse me for opening a new thread i am unable to find out the syntax error in my if else condition inside for loop in awk command , my actual aim is to print formatted html td tag when if condition (True) having string as "failed", could anyone please advise what is the right... (2 Replies)
Discussion started by: karthikram
2 Replies

3. Shell Programming and Scripting

How to pass current year and month in FOR LOOP in UNIX shell scripting?

Hi Team, I have created a script and using FOR LOOP like this and it is working fine. for Month in 201212 201301 201302 201303 do echo "Starting the statistics gathering of $Month partitions " done But in my scripts the " Month " variable is hard-coded. Can you please any one... (3 Replies)
Discussion started by: shoan
3 Replies

4. Homework & Coursework Questions

shell scripting while loop lab 15 help

hi.. this is shell scripting lab15.sh i dont understand this lab i am at the screen shot part. i was wondering if someone can take a quick look at this lab i have linked the doc below. i dont know where to start i have did the Required Errorlevels Errorlevel # but dont... (1 Reply)
Discussion started by: beerpong1
1 Replies

5. Shell Programming and Scripting

while loop shell scripting help

hi i was wondering if someone can help me with a while loop..i have been looking at this for hours and dont no wut to do.. i have to make a menu style.. to have a beeter understanding i have linked a photo at the bottom... http://www.mypicx.com/uploadimg/772204432_08022011_1.pngand then ... (1 Reply)
Discussion started by: beerpong1
1 Replies

6. Shell Programming and Scripting

Clarification on if loop in Shell scripting

Hi, I'm using Ksh and I'm seeing some of code in my programme as given below. Could you please let me know whats is this meeaing ? (I'm new to this unix) grep "1034" /u/kkk/bin/temp5.lst|cut -c1-2 >/u/kkk/bin/temp6.lst if then echo "" ... (2 Replies)
Discussion started by: shyamu544
2 Replies

7. Shell Programming and Scripting

Call Shell scripting from Perl Scripting.

Hi How to call a shell scripting through a Perl scripting? Actually I need some value from Shell scripting and passes in the Perl scripting. So how can i do this? (2 Replies)
Discussion started by: anupdas
2 Replies

8. Solaris

Problem in for loop of shell scripting in solaris

Hi below is my script for((i=0;i<=$TOTAL;i++)) do echo "IP's created are $s1.$s2.$s3.$s4" s4=`expr $s4 + 1` done where s1,2,3,4 are input varibles below error occurs while running the script syntax error at lin 11: '(' unexpected ... (12 Replies)
Discussion started by: krevathi1912
12 Replies

9. Shell Programming and Scripting

new to shell scripting: whats wrong with my if loop

#!/bin/bash for file in $HOME/*; do if ; then rm -i $file > /dev/null echo "$?" echo "$file has been deleted" fi done Been trying to learn shell scripting for a week or so now, when i run the script it doesnt display an error message, seems like it runs fine, however it doesnt delete... (10 Replies)
Discussion started by: stride6
10 Replies

10. Shell Programming and Scripting

difference between AIX shell scripting and Unix shell scripting.

please give the difference between AIX shell scripting and Unix shell scripting. (2 Replies)
Discussion started by: haroonec
2 Replies
Login or Register to Ask a Question