Redirect stdin stdout to multiple files


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Redirect stdin stdout to multiple files
# 1  
Old 11-25-2009
Redirect stdin stdout to multiple files

Hi,
i know how to
a) redirect stdout and stderr to one file,
b) and write to two files concurrently with same output using tee command

Now, i want to do both the above together.

I have a script and it should write both stdout and stderr in one file and also write the same content to another file at the same time.

In other words, both files should contain all stdout and stderr and both files
should be identical, and both files should overwrite any existing files

s1.sh > log1.txt 2>&1

In the above command i want to write the exact ouput to log2.txt at the same time

How to do this?

Thanks
-srinivas yelamanchili
# 2  
Old 11-25-2009
Code:
myscript.sh | tee outputfile1 1> outputfile2

you get two identical output files - is that what you mean?
# 3  
Old 11-25-2009
yes jim,
but in your code the stderr is not written to either of the log files
Both the log files should have the stderr too

Thanks
srinivas

---------- Post updated at 12:39 PM ---------- Previous update was at 12:17 PM ----------

This seem to be working, however it shows output on the terminal too

s1.sh 2>&1 | tee log1.txt log2.txt

I want all output only to the log files and not any to the terminal or standard output device

Thanks
srinivas
# 4  
Old 11-25-2009
Code:
s1.sh 2>&1 | tee log1.txt  1>  log2.txt

# 5  
Old 11-25-2009
Thanks Jim,
this one works too:
s1.sh 2>&1 | tee log1.txt log2.txt > /dev/null

your code is much simpler and precise

However, while in both cases the logs are now good, the exit code returned at the command line is always '0' and not that of the script

If i use:
s1.sh > log1.txt 2>&1
echo $?
displays the true return code of s1.sh

Now, with the tee command it's lost. How to fix this?

Really appreciate your feedback
# 6  
Old 11-25-2009
Unless you are using bash the pipe causes the line of code to return the status of tee.
With bash, look up PIPESTATUS examples here:
Internal Variables
# 7  
Old 11-25-2009
Thanks jim

echo ${PIPESTATUS[0]}

shows the exit code of the first command
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

[stdin / stdout] Strategies for redirecting outputs

Well.. let's say i need to write a pretty simple script. In my script i have 2 variables which can have value of 0 or 1. $VERBOSE $LOG I need to implement these cases: ($VERBOSE = 0 && $LOG = 0) => ONLY ERROR output (STDERR to console && STDOUT to /dev/null) ($VERBOSE = 1... (5 Replies)
Discussion started by: Marmz
5 Replies

2. UNIX for Advanced & Expert Users

How to set font color for STDIN,STDOUT and STDERR?

I want to differentiate the STDOUT and STDERR messages in my terminal . If a script or command is printing a message in terminal I want to differentiate by colors, Is it possible ? Example: $date Wed Jul 27 12:36:50 IST 2011 $datee bash: datee: command not found $alias ls alias... (2 Replies)
Discussion started by: ungalnanban
2 Replies

3. UNIX for Dummies Questions & Answers

STDIN and STDOUT

Hallo, i have a script like: if ;then echo "OK" else echo "ERROR $2 is missing" fi; if ;then touch $2 fi; if ;then cat $1 | grep xy > $2 (1 Reply)
Discussion started by: eightball
1 Replies

4. Programming

read and write stdin/stdout in unix

Hi, i am using the below program to read from the standard input or to write to standard out put. i know that using highlevel functions this can be done better than what i have done here. i just want to know is there any other method by which i find the exact number of characters ( this... (3 Replies)
Discussion started by: MrUser
3 Replies

5. Programming

Controlling a child's stdin/stdout (not working with scp)

All, Ok...so I know I *should* be able to control a process's stdin and stdout from the parent by creating pipes and then dup'ing them in the child. And, this works with all "normal" programs that I've tried. Unfortunately, I want to intercept the stdin/out of the scp application and it seems... (9 Replies)
Discussion started by: DreamWarrior
9 Replies

6. Shell Programming and Scripting

Redirecting stdin/stdout to/from command from/to string

Hi, I am working on a project where I have to generate and execute nasm code on-the-fly. I generate the code in a file program.asm and then execute it.This output is to stdout which i redirect to an output file which i read back to compare results: system("nasm -f elf program.asm >... (5 Replies)
Discussion started by: doc_cypher
5 Replies

7. Shell Programming and Scripting

can't close stdin/stdout in shell

#!/bin/sh exec 0</dev/null exec 1>/dev/null ls -l /proc/self/fd >&2 produces total 0 lr-x------ 1 tyler users 64 Feb 18 10:38 0 -> /proc/7886/fd lrwx------ 1 tyler users 64 Feb 18 10:38 1 -> /dev/pts/4 lrwx------ 1 tyler users 64 Feb 18 10:38 2 -> /dev/pts/4 I've verified the shell is... (10 Replies)
Discussion started by: Corona688
10 Replies

8. Programming

stdout/stdin + flushing buffers

Hi all I've run into a snag in a program of mine where part of what I entered in at the start of run-time, instead of the current value within printf() is being printed out. After failing with fflush() and setbuf(), I tried the following approach void BufferFlusher() { int in=0;... (9 Replies)
Discussion started by: JamesGoh
9 Replies

9. Programming

C++ How to use pipe() & fork() with stdin and stdout to another program

Hi, Program A: uses pipe() I am able to read the stdout of PROGAM B (stdout got through system() command) into PROGRAM A using: * child -> dup2(fd, STDOUT_FILENO); -> execl("/path/PROGRAM B", "PROGRAM B", NULL); * parent -> char line; -> read(fd, line, 100); Question:... (2 Replies)
Discussion started by: vvaidyan
2 Replies

10. Shell Programming and Scripting

redirect STDIN

can you redirect STDIN with command arguments? I have tried this approach: # ./script -option <argument1> <argument2> 0<$2 # $2: ambiguous redirect Is this possible? (4 Replies)
Discussion started by: prkfriryce
4 Replies
Login or Register to Ask a Question