| Linux Shell Scripting Tutorial (LSST) v1.05r3 | ||
| Chapter 2: Getting started with Shell Programming  | ||
|  | ||
Mostly all command gives output on screen or take input from keyboard, but in Linux (and in other OSs also) it's possible to send output to file or to read input from file.
For e.g.
 $ ls command gives output to screen; to send output to file of ls command give command
 $ ls > filename
 It means put output of ls command to filename.
There are three main redirection symbols >,>>,<
(1) > Redirector Symbol
 Syntax:
 Linux-command > filename
 To output Linux-commands result (output of command or shell script) to file. Note that if file already exist, it will be overwritten else new file is created. For e.g. To send output of ls command give
 $ ls > myfiles
 Now if 'myfiles' file exist in your current directory it will be overwritten without any type of warning.
(2) >> Redirector Symbol
 Syntax:
 Linux-command >> filename
 To output Linux-commands result (output of command or shell script) to END of file. Note that if file exist , it will be opened and new information/data will be written to END of file, without losing previous information/data, And if file is not exist, then new file is created. For e.g. To send output of date command to already exist file give command
 $ date >> myfiles
(3) < Redirector Symbol
 Syntax:
 Linux-command < filename
 To take input to Linux-command from file instead of key-board. For e.g. To take input for cat command give
 $ cat < myfiles
  Click here to learn more about I/O Redirection
 Click here to learn more about I/O Redirection
You can also use above redirectors simultaneously as follows
 Create text file sname as follows
$cat > sname
 vivek
 ashish
 zebra
 babu
 Press CTRL + D to save.
Now issue following command.
  $ sort < sname > sorted_names
 $ cat sorted_names
 ashish
 babu
 vivek
 zebra
In above example sort ($ sort < sname > sorted_names) command takes input from sname file and output of sort command (i.e. sorted names) is redirected to sorted_names file.
Try one more example to clear your idea:
 $ tr "[a-z]" "[A-Z]" < sname > cap_names
 $ cat cap_names
 VIVEK
 ASHISH
 ZEBRA
 BABU
tr command is used to translate all lower case characters to upper-case letters. It take input from sname file, and tr's output is redirected to cap_names file.
Future Point : Try following command and find out most important point:
 $ sort > new_sorted_names < sname 
 $ cat new_sorted_names 
|  | ||
| Why Command Line arguments required | Pipe | |