a simple loop


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting a simple loop
# 1  
Old 11-25-2010
Data a simple loop

Does any body can help me with a loop in this example?
Code:
if [ "$i" -eq 1 -a "$#" -ge 1 ]
then
    if [ "$#" -ne 1 ]
       then
        runner=$(grep "$1" "$2")
    runne=$(grep "$1" "$3")
        run=$(grep "$1" "$4")
    fi
fi

#                                                                                
# Message on screen or mail or both                                              
#                                                                                

if [ "$mailopt" = FALSE ]
    then
      echo "*****************************"
      echo "$2:$runner"
      echo "$3:$runne"
      echo "$4:$run"
      echo "*****************************"
    else
      echo "You have mail!"
      run=$(whoami | cut -c1-8)
      echo "pattern $1 found in file $2:\                                        
            $runner" | mail $run
fi

Instead of specifying $1 $2 $3 with different variables (runner, runne, run). Can you guys help me to change it with a loop so it accepts several files and the output would show the pattern dog in different files
Just what grep does (grep dog file1 file2 file3).
file1: cat dog house
file2: dog cat house
file3: house dog cat
Thanks I just cannot find out how to make that little detail. Thanks.

Last edited by Scott; 11-25-2010 at 03:10 AM.. Reason: Added code tags
# 2  
Old 11-25-2010
Please, use code tags.
Somthing like
bash code:
  1. if (($#<2)); then
  2.    echo "There must be at least 2 parameters (pattern, file)"
  3.    exit 1
  4. fi
  5. Pattern="$1"
  6. shift
  7. Response=$(grep "$Pattern" "$@")
  8. # Message on screen or mail or both
  9. if &#91; "$mailopt" = FALSE ]; then
  10.    echo "*****************************"
  11.    echo "$Response"
  12.    echo "*****************************"
  13. else
  14.    echo "You have mail!"
  15.    run=$(whoami | cut -c1-8)
  16.    echo "pattern $1 found:
  17. $Response" | mail ...
  18. fi
This User Gave Thanks to frans For This Post:
# 3  
Old 11-25-2010
If you change frans' first line to:
Code:
if [ $# -lt 2 ]; then

it will run in many shells other than bash
This User Gave Thanks to Scrutinizer For This Post:
# 4  
Old 11-25-2010
Thank you

Thank you very much guys. Happens that some times I want to reinvent the wheel. Thank you thank you.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Simple loop using for

Dear experts, I am writing a bash script. At some point of the program I need to have 'for' loop. For simplicity I tried with some other simple code. The format of the loop is given below. k=51 m=55 for j in {$k..$m};do w=$(($j+2)) z=$(($j+9)) echo "$w, $z" done But my... (4 Replies)
Discussion started by: vjramana
4 Replies

2. UNIX for Dummies Questions & Answers

Simple loop

I need to chmod a bunch of files with a specific extension in one directory. If I understand correctly first I would run ls command like this ls -R | grep .mp3 > /tmp/list once I have the output file I should be able to run a loop to chmod all the files in the list created. This is where... (5 Replies)
Discussion started by: eugenes18t
5 Replies

3. Shell Programming and Scripting

Simple using For loop

Hi expert, I'm using csh Code: #!/bin/csh set x = 0 set number = `awk '{array=$0} END {print array;}'` i want to use for loop to store data to $number repeatly untill x = 23 How to use c shell for loop? (2 Replies)
Discussion started by: vincyoxy
2 Replies

4. Shell Programming and Scripting

A simple (?) loop

I have what I believe is a simple programming question. I have a text file that looks like: mol 1 G:\stereo01.hin block text ... ... ... endmol 1 However, I would like a file that repeats this entire block of text several times over. The lines of text in the middle remain the same for each... (2 Replies)
Discussion started by: red baron
2 Replies

5. UNIX for Dummies Questions & Answers

a simple loop in csh

Hello, I have a file with over 48000 lines and I need to select certain parts of the file. I know which awk commands work for what I need, I just need some help putting together a loop that will repeat the command. These are the commands that work: awk 'NR < 6' plot.out > plot.test (I get... (1 Reply)
Discussion started by: dsstamps
1 Replies

6. Shell Programming and Scripting

simple while loop

i have a script called file2 #!/bin/ksh i=0 while do echo $i >> result.txt i=`expr $i + 1` done echo "***********************" >> result ------------------------------------------------------------------- (10 Replies)
Discussion started by: ali560045
10 Replies

7. Shell Programming and Scripting

simple for loop

i have the following process running in background: when i give "ps -lef" ------------------------------------------------------------------------ user2 user1 user1 user3 user1 user4 user5 user4 user3 user4 user2 user1 user1 user3 user1 user4 (3 Replies)
Discussion started by: ali560045
3 Replies

8. UNIX for Dummies Questions & Answers

Simple loop query

Hi All Just started with shell scripts and am stumped by, what is to most of you no doubt, a simple issue. All I'm trying to do is prompt a user for input and writing to a log file. If the user types the word 'stop', then the program should halt. If the word typed is 'clear', then the log file... (2 Replies)
Discussion started by: kutz13
2 Replies

9. Shell Programming and Scripting

Simple while loop question

I have written a script that countsdown from 20 to 1 and has a sleep in between each count but I want to make it sleep for half a second but I get errors whenever I change the sleep from 1 second to half a second any ideas? I am using Sun OS 5.9 heres what I've got: X=0 while do echo... (3 Replies)
Discussion started by: Brokeback
3 Replies

10. Shell Programming and Scripting

a simple while loop

Hallo everyone I might just be being dumb, but I am using the BASH shell and cannot get the following script to work: x=0 while do echo $x x=´echo "$x + 1" | bc´ done Can anybody help me out. I am just get a repeating output saying: bc: command not found 0 + 1: command not... (5 Replies)
Discussion started by: syno
5 Replies
Login or Register to Ask a Question