01-09-2002
Look into the tee command. ($ man tee)
That might help you out.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
is it possible to echo 'some text' every 10 minutes on my screen continues ,
without cron. (1 Reply)
Discussion started by: vkandati
1 Replies
2. UNIX for Dummies Questions & Answers
Major Newbie here folks. I'm trying to set a variable to my Home directory and then echo it to the screen.
Any and all help is greatly appreciated.
Thanks
Anna (3 Replies)
Discussion started by: amidget
3 Replies
3. Shell Programming and Scripting
Hello all!..
does anyone know the syntax to print to the screen and to a file?
Im using something like
AWK ....
print header |tee -a invalid_csv_file ;
END {..}
' invalid_csv_file="$invalid_csv_dir_file"
but no joy?
I get sh:... (2 Replies)
Discussion started by: satnamx
2 Replies
4. Shell Programming and Scripting
as the title suggests, i need to print a user message to a log file and the screen using perl.
in unix i set up a function using 'tee' like so
function Display_Message
{
echo "$*" | tee -ai $LOGFILE
}
the following command then obviously displays to the screen and prints to a log... (6 Replies)
Discussion started by: mjays
6 Replies
5. AIX
Hi all,
Could you please tell me how to take a screenshot in aix (like Print Screen button in windows)?
Thanks (7 Replies)
Discussion started by: prashantchavan
7 Replies
6. Shell Programming and Scripting
Please help me to simplify my below script.
#!/bin/bash
LOG_FILE=/tmp/log.txt
echo "Hello"
echo "Hello" >> /tmp/log.txt
Is there anyway, that I can echo "Hello" to both screen and file with one single echo command ? (6 Replies)
Discussion started by: phamp008
6 Replies
7. Shell Programming and Scripting
I have two text files, each of then only containing ONE line and NO carraige return or white space at the end...how do I echo both of these text files to the screen without putting an extra line? I want to do this from the command line.
file1.txt:
this is file1.txt 1
file2.txt:
this is... (4 Replies)
Discussion started by: ajp7701
4 Replies
8. UNIX for Dummies Questions & Answers
Hi all,
I have a script that bulk loads thousands of lines of data. I need to log the output during the execution of the script.
I know I can redirect (">") the output to a file; however, I want the output going to both the screen and the log file.
I thought I could use pipe to pipe the... (10 Replies)
Discussion started by: orahi001
10 Replies
9. Shell Programming and Scripting
Hi,
i need to execute echo command to write in a txt file on a remote machine. i did it in this way:
ssh user@remotemachine "echo "put text here" > /home/user/myfile.txt"
I tried to run the same command within a detached screen in this way:
ssh user@remotemachine screen -dm "echo "put... (3 Replies)
Discussion started by: brembo
3 Replies
10. Shell Programming and Scripting
In shellscript, I want to display echo message in console and in the log file. please help me to display this message in two places.
I am using below statment to display messsage, but it is displaying in log file only.
echo "Server Already running" >> serverlog 2>&1 (3 Replies)
Discussion started by: Kri
3 Replies
TEE(2) Linux Programmer's Manual TEE(2)
NAME
tee - duplicating pipe content
SYNOPSIS
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <fcntl.h>
ssize_t tee(int fd_in, int fd_out, size_t len, unsigned int flags);
DESCRIPTION
tee() duplicates up to len bytes of data from the pipe referred to by the file descriptor fd_in to the pipe referred to by the file
descriptor fd_out. It does not consume the data that is duplicated from fd_in; therefore, that data can be copied by a subsequent
splice(2).
flags is a series of modifier flags, which share the name space with splice(2) and vmsplice(2):
SPLICE_F_MOVE Currently has no effect for tee(); see splice(2).
SPLICE_F_NONBLOCK Do not block on I/O; see splice(2) for further details.
SPLICE_F_MORE Currently has no effect for tee(), but may be implemented in the future; see splice(2).
SPLICE_F_GIFT Unused for tee(); see vmsplice(2).
RETURN VALUE
Upon successful completion, tee() returns the number of bytes that were duplicated between the input and output. A return value of 0 means
that there was no data to transfer, and it would not make sense to block, because there are no writers connected to the write end of the
pipe referred to by fd_in.
On error, tee() returns -1 and errno is set to indicate the error.
ERRORS
EINVAL fd_in or fd_out does not refer to a pipe; or fd_in and fd_out refer to the same pipe.
ENOMEM Out of memory.
VERSIONS
The tee() system call first appeared in Linux 2.6.17; library support was added to glibc in version 2.5.
CONFORMING TO
This system call is Linux-specific.
NOTES
Conceptually, tee() copies the data between the two pipes. In reality no real data copying takes place though: under the covers, tee()
assigns data in the output by merely grabbing a reference to the input.
EXAMPLE
The following example implements a basic tee(1) program using the tee() system call.
#define _GNU_SOURCE
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <limits.h>
int
main(int argc, char *argv[])
{
int fd;
int len, slen;
if (argc != 2) {
fprintf(stderr, "Usage: %s <file>
", argv[0]);
exit(EXIT_FAILURE);
}
fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);
if (fd == -1) {
perror("open");
exit(EXIT_FAILURE);
}
do {
/*
* tee stdin to stdout.
*/
len = tee(STDIN_FILENO, STDOUT_FILENO,
INT_MAX, SPLICE_F_NONBLOCK);
if (len < 0) {
if (errno == EAGAIN)
continue;
perror("tee");
exit(EXIT_FAILURE);
} else
if (len == 0)
break;
/*
* Consume stdin by splicing it to a file.
*/
while (len > 0) {
slen = splice(STDIN_FILENO, NULL, fd, NULL,
len, SPLICE_F_MOVE);
if (slen < 0) {
perror("splice");
break;
}
len -= slen;
}
} while (1);
close(fd);
exit(EXIT_SUCCESS);
}
SEE ALSO
splice(2), vmsplice(2)
COLOPHON
This page is part of release 3.44 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
Linux 2012-05-04 TEE(2)