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
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
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
2. Programming
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
3. Programming
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
4. Shell Programming and Scripting
#!/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
5. Shell Programming and Scripting
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
6. Programming
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
7. Programming
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
8. UNIX for Dummies Questions & Answers
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
9. UNIX for Advanced & Expert Users
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
10. Shell Programming and Scripting
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
tee(1) General Commands Manual tee(1)
NAME
tee - Displays the output of a program and copies it into a file
SYNOPSIS
tee [-ai] file...
STANDARDS
Interfaces documented on this reference page conform to industry standards as follows:
tee: XCU5.0
Refer to the standards(5) reference page for more information about industry standards and associated tags.
OPTIONS
Adds the output to the end of file instead of writing over it. Ignores the SIGINT signal.
OPERANDS
Standard input is stored into, or appended to, the file specified.
[Tru64 UNIX] The tee command can accept up to 20 file arguments.
DESCRIPTION
The tee command reads standard input and writes to both standard output, and each specified file.
The tee command is useful when you wish to view program output as it is displayed, and also want to save it in a file. The tee command does
not buffer output, so you may wish to pipe the output of tee to more if more than one full screen of data is anticipated.
NOTES
If a write to any file fails, the exit status of tee will be non-zero. Writes to all other specified files may be successful, and opera-
tion will continue until standard input is exhausted.
EXIT STATUS
The following exit values are returned: Successful completion. An error occurred.
EXAMPLES
To view and save the output from a command at the same time, enter: lint program.c | tee program.lint
This displays the standard output of the command lint program.c at the terminal, and at the same time saves a copy of it in the file
program.lint. If program.lint already exists, it is deleted and replaced. To display and append to a file, enter: lint program.c |
tee -a program.lint
This displays the standard output of lint program.c at the terminal and at the same time appends a copy of it to the end of pro-
gram.lint. If the file program.lint does not exist, it is created.
ENVIRONMENT VARIABLES
The following environment variables affect the execution of tee: Provides a default value for the internationalization variables that are
unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization vari-
ables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value,
overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes
of text data as characters (for example, single-byte as opposed to multibyte characters in arguments). Determines the locale for the for-
mat and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of
LC_MESSAGES.
SEE ALSO
Commands: cat(1), echo(1), script(1)
Standards: standards(5)
tee(1)