Search Tools Links Login

Redirecting Input and Output in Unix





Section 6: Redirecting Input and Output





CONCEPT: Every program you run from the shell opens three files:
Standard input, standard output, and standard error.  The files
provide the primary means of communications between the programs, and
exist for as long as the process runs.


The standard input file provides a way to send data to a process.  As
a default, the standard input is read from the terminal keyboard.


The standard output provides a means for the program to output data.
As a default, the standard output goes to the terminal display screen.


The standard error is where the program reports any errors encountered
during execution.  By default, the standard error goes to the terminal
display.

CONCEPT: A program can be told where to look for input and
where to send output, using input/output redirection.  UNIX
uses the "less than" and "greater than" special characters (< and

>) to signify input and output redirection, respectively.

Redirecting input



Using the "less-than" sign with a file name like this:

< file1
in a shell command instructs the shell to read
input from a file called "file1" instead of from the keyboard.



EXAMPLE:Use standard input redirection to send the contents of
the file /etc/passwd to the more command:
more <
/etc/passwd


Many UNIX commands that will accept a file name as a command line
argument, will also accept input from standard input if no file is
given on the command line.



EXAMPLE: To see the first ten lines of the /etc/passwd file, the
command:
head /etc/passwd
will work just the same as the
command:
head < /etc/passwd


Redirecting output



Using the "greater-than" sign with a file name like this:

> file2
causes the shell to place the output from the
command in a file called "file2" instead of on the screen.  If the
file "file2" already exists, the old version will be overwritten.

EXAMPLE: Type the command
ls /tmp >
~/ls.out
to redirect the output of the ls command into a
file called "ls.out" in your home directory.  Remember that the tilde
(~) is UNIX shorthand for your home directory.  In this command, the
ls command will list the contents of the /tmp directory.



Use two "greater-than" signs to append to an existing file.  For
example:
>> file2
causes the shell to
append the output from a command to the end of a file called "file2".
If the file "file2" does not already exist, it will be created.

EXAMPLE: In this example, I list the contents of the /tmp
directory, and put it in a file called myls.  Then, I list the
contents of the /etc directory, and append it to the file
myls:
ls /tmp > myls
ls /etc >> myls



Redirecting error



Redirecting standard error is a bit trickier, depending on the kind of
shell you're using (there's more than one flavor of shell program!).
In the POSIX shell and ksh, redirect the standard error with the
symbol "2>".



EXAMPLE: Sort the /etc/passwd file, place the results in a file
called foo, and trap any errors in a file called err with the
command:
sort < /etc/passwd > foo 2> err







About this post

Posted: 2005-11-1
By: FortyPoundHead
Viewed: 1,727 times

Categories

Tutorials

Linux

Attachments

No attachments for this post


Loading Comments ...

Comments

No comments have been added for this post.

You must be logged in to make a comment.

ADODB.Connection error '800a0e79'

Operation is not allowed when the object is open.

/assets/inc/inc_footer.asp, line 37