While loop Question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting While loop Question
# 1  
Old 03-04-2013
While loop Question

Hi,

I have a requirement where I have to check for 10 files in Unix location. If all of the files present in that directory then i have execute another process.
can you help me resolving this issue.

sample

location
Code:
/home/usr

Code:
abc.txt
cde.txt
aaaa.txt
lll.txt
ooo.txt

if all the file exists for this month then i have to do another processing

Moderator's Comments:
Mod Comment edit by bakunin: this looks like a scripting problem rather than AIX-related. I transfer this thread to the Shell Programming and Scripting board.

Last edited by Scrutinizer; 03-05-2013 at 08:23 AM.. Reason: code tags
# 2  
Old 03-04-2013
What happens after you have started the "other process"? Should the script stop then? Start over? Do something entirely different?

Which shell do you use? bash? Korn shell? Something else?

Lacking any specification, here is a Korn shell script, which waits for 10 specified files to be present, then does "something" and exists.

Code:
#! /usr/bin/ksh

typeset    afPattern[1]="/path/to/file1"       # location of files to search for
typeset    afPattern[2]="/path/to/file2"
typeset    afPattern[3]="/path/to/file3"
typeset    afPattern[4]="/path/to/file4"
typeset    afPattern[5]="/path/to/file5"
typeset    afPattern[6]="/path/to/file6"
typeset    afPattern[7]="/path/to/file7"
typeset    afPattern[8]="/path/to/file8"
typeset    afPattern[9]="/path/to/file9"
typeset    afPattern[10]="/path/to/file10"
typeset -i iFound=0                                 # number of found files
typeset -i iCnt=0

while [ $iFound -lt ${#afPattern[*]} ] ; do
     sleep 5
     (( iFound=0 ))
     (( iCnt=1 ))
     while [ $iCnt -le ${#afPattern[*]} ] ; do
          if [ -e "${afPattern[$iCnt]} ] ; then
               (( iFound += 1 ))
          fi
          (( iCnt += 1 ))
     done
done

something
exit 0

The outer loop is left only when all files in the array $afPattern[] are found. in the inner loop these files are checked and the found-counter is increased fo every file found that way. If not all the files are found the loop is restarted (a 5-second delay reduces the taxing of the system - adjust it to your needs), if all files are found the outer loop exits and "something" is executed.

I hope this helps.

bakunin
# 3  
Old 03-04-2013
Code:
cd /home/user &&
if test \
-f abc.txt -a \
-f cde.txt -a \
-f aaaa.txt -a \
-f lll.txt -a \
-f ooo.txt
then
 othercommand
fi

# 4  
Old 03-05-2013
Given those 10 file names exist in a listfile, and that there's no more than those 10 files in the directory, this might do:
Code:
$ ls  *.txt | diff listfile - &> /dev/null && echo other processing || echo waiting

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Question about for loop

Hi, I have code like below disk_list=$(ls /root/file1) for disk in $disk_list do pvcreate $i done I know what pvcreate command does, but I do not understand what this $i do here. can someone please explain. (2 Replies)
Discussion started by: stew
2 Replies

2. UNIX for Dummies Questions & Answers

Loop question

Hi, I would really appreciate some help with manipulating a file. Here is my input file: SNP_1 : 1 SNP_11 : 1 SNP_2 -0.12 1 SNP_12 -0.3472 1 SNP_3 -0.708 1 SNP_13 0.5037 1 SNP_4 1.492 0.5 SNP_14 -0.0685 1 SNP_5 1.27 0.5 SNP_15 0.547 ... (3 Replies)
Discussion started by: zajtat
3 Replies

3. Shell Programming and Scripting

For loop question

I have two files. In file one, there are many columns, but only two of interest to me. Column 1 contains a list of individuals, defined by an ID number. Column 10 contains the diagnosis that each individual has (I am a physician). All together, there are 3000 lines in this file, one line per... (2 Replies)
Discussion started by: awc228
2 Replies

4. Shell Programming and Scripting

For loop question

Hi, I'm trying to put together a small script that will read a txt file that contains a list of two columns. Each column is the name of a folder.. e.g. AIX Server1 AIX Server2 AIX Server3 $ for i in `cat /opt/apacheprod/scripts/input/copy_list.txt` do PLATFORMVAR=`awk ' { print $1 } '... (7 Replies)
Discussion started by: Jazmania
7 Replies

5. Shell Programming and Scripting

For Loop Question

I am struggling with the for loop. I have a file name heros.txt and I would like to go through a list in file where.txt and see if I can find the name from where inside heros. One of the problems that I am having is I dont understand how to setup the for loop to find the list to search.:wall: ... (6 Replies)
Discussion started by: captaindoogles
6 Replies

6. Shell Programming and Scripting

loop question

hey guys what im trying to do is do a simple script that will ask for a password and on the 5th time it says access denied if the right password is still not entered this is what i have so far can anyone help me im not good with scripting thanks in advance #!/bin/bash secretname=secret... (2 Replies)
Discussion started by: randallrivy11
2 Replies

7. Shell Programming and Scripting

For Loop Question

I'm improving the way an existing script handles arrays, but the results aren't what I had in mind: e="Too many consecutive errors... System is probably unstable!" e="Cancelable Timer Wait Failed!" for errcd in ${e} do echo ${errcd} done The for loop interprets the spaces... (2 Replies)
Discussion started by: ironhalo
2 Replies

8. Shell Programming and Scripting

BASH loop inside a loop question

Hi all Sorry for the basic question, but i am writing a shell script to get around a slightly flaky binary that ships with one of our servers. This particular utility randomly generates the correct information and could work first time or may work on the 12th or 100th attempt etc !.... (4 Replies)
Discussion started by: rethink
4 Replies

9. Shell Programming and Scripting

loop question

HI ALL How to read first 10 line from a file using any method (5 Replies)
Discussion started by: aliahsan81
5 Replies

10. Shell Programming and Scripting

Loop question

hi, how would i go about making a loop which gets each line from a single text file, set it to a variable and then print it to screen? thanks eg: #!/bin/sh FILE="somefile.txt" text_line="" what kind of loop would use here? (18 Replies)
Discussion started by: strike
18 Replies
Login or Register to Ask a Question