Switching stdout redirection on-the-fly


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Switching stdout redirection on-the-fly
# 1  
Old 08-26-2008
Lightbulb Switching stdout redirection on-the-fly

I would like to build a shell script which runs a program and re-directs the output to a different file every minute. For example, the first minute the output get redirected to 1.txt, and the second minute to 2.txt, etc. I'm not sure how I would do this. To my understanding I should be able to use the & to allow program to run while the script continues execution, but how could I periodically re-direct stdout? I'm new to shell scripting and this seems to be a tricky problemSmilie Thanks!
# 2  
Old 08-26-2008
You can try the technique used in the following script (where a function simulates the program) :
Code:
program() {
   while (( count++ <= 60 ))
   do
      date +"$count %Y%d%d %H%M%S"
      sleep $(( $RANDOM % 10 ))
   done
}

initial_sec=$SECONDS
program |
while IFS= read line
do
   sec=$SECONDS
   (( min = (sec - initial_sec) / 60 + 1 ))
   out=$min.txt
   echo "$line" >> $out
done

Code:
> ls *.txt
/bin/ls: cannot access *.txt: No such file or directory
> date; sky.sh; date
Tue Aug 26 13:28:44     2008
Tue Aug 26 13:33:24     2008
> ls -l *.txt
-rw-r--r-- 1 Jean-Pierre Aucun 276 Aug 26 13:29 1.txt
-rw-r--r-- 1 Jean-Pierre Aucun 209 Aug 26 13:30 2.txt
-rw-r--r-- 1 Jean-Pierre Aucun 209 Aug 26 13:31 3.txt
-rw-r--r-- 1 Jean-Pierre Aucun 285 Aug 26 13:32 4.txt
-rw-r--r-- 1 Jean-Pierre Aucun 171 Aug 26 13:33 5.txt
> cat 1.txt
1 20082626 132844
2 20082626 132845
3 20082626 132854
4 20082626 132858
5 20082626 132900
6 20082626 132903
7 20082626 132905
8 20082626 132910
9 20082626 132918
10 20082626 132920
11 20082626 132922
12 20082626 132926
13 20082626 132928
14 20082626 132934
15 20082626 132940
> cat 5.txt
53 20082626 133243
54 20082626 133253
55 20082626 133254
56 20082626 133300
57 20082626 133301
58 20082626 133306
59 20082626 133310
60 20082626 133310
61 20082626 133319
>

Jean-Pierre.
# 3  
Old 08-27-2008
This is exactly the information I needed. Thanks a bunch!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Execute script on the fly

Hi all, I am calling a zsh script from batch file . This zsh just removes the trigger file in a particular directory.File name is passed as a parameter from the batch file Problem is this batch is called in multiple other batch files and sometimes system says file cant be used as it is used... (4 Replies)
Discussion started by: Hypesslearner
4 Replies

2. OS X (Apple)

Creating An Executable On The Fly...

Hi all... Had an idea tonight which could really enhance shell scripting for me. Yes I am aware there could be difficulties but...... Creating a C script inside the shell script to do a task, (a simple text print to stdout in this example), compiling it on the fly, making sure it is... (4 Replies)
Discussion started by: wisecracker
4 Replies

3. HP-UX

Compress dbexport on the fly

Hi, I have an old HPUX 10.20 server running Informix 7.23 I need to dump the database to get it off that hardware before it dies. Unfortunately there is insufficient local diskspace to do so. I have set up a linux box with sufficient disk onto which I can export the database. Having... (1 Reply)
Discussion started by: fella
1 Replies

4. Shell Programming and Scripting

stdout, stderr redirection

Hi all, can someone help me with the next redirection? i want to redirect the stdout+stderr of a command to the same file (this i can do by prog &> file) but in addition i want to redirect only the stderr to a different file. how can i do this please? (in BASH) thanks. (4 Replies)
Discussion started by: eee
4 Replies

5. Shell Programming and Scripting

STDOUT and STDERR redirection within a script

Hello all, I have a for loop executing in a script that I want to redirect STDOUT to screen and to file, while directing STDERR to the bit bucket. Here is the general sentax of what I'm doing: for i in thingy do some_command ${i} done 1>&1 | tee ${LOGFILE} 2> /dev/null What I am... (2 Replies)
Discussion started by: LinuxRacr
2 Replies

6. What is on Your Mind?

The Only Way To Fly !

This is great! Lqh8e2KYIrU (8 Replies)
Discussion started by: Neo
8 Replies

7. Shell Programming and Scripting

Read Files on the Fly

Hi, I am creating files in a folder on the fly with arbritrary names but same extension (say, ".img"). How can I read each filename from the folder through a script. regards Angshuman (2 Replies)
Discussion started by: angshuman_ag
2 Replies

8. Shell Programming and Scripting

Grep logs on the fly

Hi, We use an application that is dumping logs to a file on disk. However, this is dumping very verbosely and there is no method of turning down the logging level. We need to remove certain contents from these before they are commited to disk. Has anybody got any ideas how I can do this... (3 Replies)
Discussion started by: harperonline
3 Replies

9. UNIX for Dummies Questions & Answers

mv and compress on the fly

I want to move and compress a big export file. Like mv file_exp /filesystem/file_exp |compress The file system is too small to compress and move with 2 steps. What is the best command for me. I'm running solaris. :confused: (1 Reply)
Discussion started by: simquest
1 Replies

10. UNIX for Dummies Questions & Answers

Rename files on the fly

Hi everyone, I am sort of new to shell scripting, I have a bunch of files that begin with 'blah' and I want to rename those files with something different (renamedFile1, renamedFile2, renamedFileN). I don't want to go through each file and rename them with the mv command. Could I just use a for... (4 Replies)
Discussion started by: kcor
4 Replies
Login or Register to Ask a Question