When we say a command ``prints'' a value we typically mean that it displays the value on your terminal screen. What's really happening is that the result of the command is being sent to ``standard output'' (stdout), which by default is your screen. Similarly, ``standard input'' (stdin) is by default your keyboard. Data moving from the standard input to the standard output is an example of an I/O stream. It is possible to divert such streams to a certain extent. The following table summarizes the most common stream controls used in the csh environment with some examples:
|<||redirect stdin||mail dcr < myfile||mail dcr the contents of myfile|
|>||redirect stdout||myprog > log||write output from myprog to log|
|»||append stdout||myprog » log||append output from myprog to log|
|« word||redirect stdin until word||myprog « STOP||send next lines to myprog until STOP|
||||pipe stdout to stdin||echo test | lpr||send phrase ``test'' to printer|
There are also modifiers like >& (to redirect both stdout and ``standard error'' (stderr), the diagnostic stream) and >! (to ``clobber'' an existing output file without confirmation).