Sponsored Content
Top Forums Shell Programming and Scripting Turn For Loop into While Loop Post 302339838 by cbo0485 on Friday 31st of July 2009 01:00:59 PM
Old 07-31-2009
Turn For Loop into While Loop

This script does exactly what I need, it just doesn't seem as efficient as it could be.

Code:
#!/bin/sh
baseDirVar="/opt/user/"
cd ${baseDirVar}
sizeVar=`ls -s $(find . -name nohup*.out) | cut -d'.' -f 1`
for i in $sizeVar
do
        if [ "$i" -ge "5000" ];
                then
                        dirVar=`ls -s $(find . -name nohup*.out) | grep $i | cut -b 6-100`
                        curFile=`basename ${dirVar}`
                        curDir=`dirname ${dirVar}`
                        cd ${curDir}
                        ./rotate*
                        pwd
                        cd ${baseDirVar}
                        pwd
                        curFile=''
                        curDir=''
                else
                        curFile=''
                        curDir=''
                        echo "size not big enough"
                        cd ${baseDirVar}
        fi
done
exit

As you can see, it runs through the loop, which runs through the if then else for every file found matching nohup*.out, which can be up to 30 or so, but usually only 1 or two files will match the requirement to actually go through the if statement. Is there a way I can change this to a while loop to where it will only run through on the ones that are greater than 5000?

The two pwd's were just for while I was testing it, I have since deleted those two pwd commands.

---------- Post updated at 01:00 PM ---------- Previous update was at 12:44 PM ----------

Something else I just noticed. I admin quite a few different servers, and one of them had a log file that was like 100mb, so b/c of that it threw off my cut line. Is there a better and more dynamic way to use that, rather than giving it a static line of 6-100. Now, it's not a huge issue b/c I have this set to run by crontab every half-hour, so I doubt in that half hour I'll have a log that grows so much that it'll get past that digit and cause an issue, but in the initial running of the script on new servers, I have to modify it accordingly to the biggest log file on those servers.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

how to get the similar function in while loop or for loop

Dear all How to write the shell script for the following statement: (C programming) for (i=0;i<30;i++) { if i=1 continue *skip this number (To do function here....) ... } similar statement in while loop.... I wrote the script in sh... (3 Replies)
Discussion started by: trynew
3 Replies

2. Shell Programming and Scripting

Is there a better way I could have run this loop. (For loop with two variables)

Sorry for such a dreadful title, but I'm not sure how to be more descriptive. I'm hoping some of the more gurutastic out there can take a look at a solution I came up with to a problem, and advice if there are better ways to have gone about it. To make a long story short around 20K pieces of... (2 Replies)
Discussion started by: DeCoTwc
2 Replies

3. Shell Programming and Scripting

Using variables created sequentially in a loop while still inside of the loop [bash]

I'm trying to understand if it's possible to create a set of variables that are numbered based on another variable (using eval) in a loop, and then call on it before the loop ends. As an example I've written a script called question (The fist command is to show what is the contents of the... (2 Replies)
Discussion started by: DeCoTwc
2 Replies

4. Shell Programming and Scripting

Null Handling in Until loop. . .loop won't stop

Hi Im running this script, which is supposed to find the max value build some tables and then stop running once all the tables are built. Thing is , it keeps assigning a null value to $h and then $g is null so it keep building tables i.e. testupdateNUL. How can I stop this? Here is what I have: ... (4 Replies)
Discussion started by: brandono66
4 Replies

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

6. Shell Programming and Scripting

How to loop use while loop in csh script?

Hi all, i got 2 text file. file.txt value.txt i want use C shell script to write out while both of the file got different limit....how i going to write it in 1 while loop? (4 Replies)
Discussion started by: proghack
4 Replies

7. Shell Programming and Scripting

Array Variable being Assigned Values in Loop, But Gone when Loop Completes???

Hello All, Maybe I'm Missing something here but I have NOOO idea what the heck is going on with this....? I have a Variable that contains a PATTERN of what I'm considering "Illegal Characters". So what I'm doing is looping through a string containing some of these "Illegal Characters". Now... (5 Replies)
Discussion started by: mrm5102
5 Replies

8. Shell Programming and Scripting

Reset while loop to loop same file multiple times

Hi, I want to read file multiple times. Right now i am using while loop but that is not working. ex. While read line do while read line2 do echo stmt1 #processing some data based on data., done < file2.txt done < file1.txt # This will have 10... (4 Replies)
Discussion started by: tmalik79
4 Replies

9. Shell Programming and Scripting

awk loop using array:wish to store array values from loop for use outside loop

Here's my code: awk -F '' 'NR==FNR { if (/time/ && $5>10) A=$2" "$3":"$4":"($5-01) else if (/time/ && $5<01) A=$2" "$3":"$4-01":"(59-$5) else if (/time/ && $5<=10) A=$2" "$3":"$4":0"($5-01) else if (/close/) { B=0 n1=n2; ... (2 Replies)
Discussion started by: klane
2 Replies

10. Shell Programming and Scripting

For loop or while loop from a text file

Hi all, i developed a script to measure the uptime of a process in a Solaris 10/11 environments. All is well, but i came across a situation where there are multiple processes of the same name. Basically i have the following result file: beVWARS 13357 19592122 beVWARS 14329 19591910... (4 Replies)
Discussion started by: nms
4 Replies
POE::Loop::Tk(3pm)					User Contributed Perl Documentation					POE::Loop::Tk(3pm)

sub skip_tests {
  return "Tk needs a DISPLAY (set one today, okay?)" unless (
    (defined $ENV{DISPLAY} and length $ENV{DISPLAY}) or $^O eq "MSWin32"
  );
  my $test_name = shift;
  if ($test_name eq "k_signals_rerun" and $^O eq "MSWin32") {
    return "This test crashes Perl when run with Tk on $^O";
  }
  return "Tk tests require the Tk module" if do { eval "use Tk"; $@ };
  my $m = eval { Tk::MainWindow->new() };
  if ($@) {
    my $why = $@;
    $why =~ s/ at .*//;
    return "Tk couldn't be initialized: $why";
  }
  return; }

NAME
POE::Loop::Tk - a bridge that allows POE to be driven by Tk SYNOPSIS
See POE::Loop. DESCRIPTION
POE::Loop::Tk implements the interface documented in POE::Loop. Therefore it has no documentation of its own. Please see POE::Loop for more details. POE::Loop::Tk is one of two versions of the Tk event loop bridge. The other, POE::Loop::TkActiveState accommodates behavior differences in ActiveState's build of Tk. Both versions share common code in POE::Loop::TkCommon. POE::Loop::Tk dynamically selects the appropriate bridge code based on the runtime environment. SEE ALSO
POE, POE::Loop, Tk, POE::Loop::TkCommon, POE::Loop::PerlSignals. AUTHORS &; LICENSING Please see POE for more information about authors, contributors, and POE's licensing. perl v5.10.1 2010-04-11 POE::Loop::Tk(3pm)
All times are GMT -4. The time now is 09:28 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy