- Learning Linux Shell Scripting
- Ganesh Naik
- 482字
- 2021-06-25 22:02:51
Redirection
When a file descriptor is assigned to something other than a terminal, this is called I/O redirection. The shell performs the redirection of output to a file by closing the standard output file descriptor 1 (the Terminal) and then assigning that descriptor to the file. When redirecting standard input, the shell closes file descriptor 0 (the Terminal) and assigns that descriptor to a file. The Bash shells handle errors by assigning a file to file descriptor 2.The following command will take input from the sample.txt file:
$ wc < sample.txt
The preceding command will take content from the sample.text file. The wc command will print the number of lines, words, and characters in the sample.txt file. This command will redirect output to be saved in the log.txt file:
$ echo "Hello world" > log.txt
This command will append the Hello World text to the log.txt file:
$ echo "Welcome to Shell Scripting" >> log.txt
The single > will overwrite or replace the existing text in the log file, and double >> will append the text to the log file. Let's see a few more examples:
$ tr '[A-Z]' '[a-z]' < sample.txt
The preceding tr command will read text from the sample.txt file. The tr command will convert all uppercase letters to lowercase letters and will print the converted text on screen:
$ ls > log.txt $ cat log.txt
The output of the command is as follows:
dir_1 sample.txt extra.file
In this example command, ls sends directory content to file log.txt. Whenever we want to store the result of the command in the file, we can use the preceding example.
$ date >> log.txt $ cat log.txt
The output is as follows:
dir_1 dir_2 file_1 file_2 file_3 Sun Sept 17 12:57:22 PDT 2004
In the preceding example, we redirect and append the result of the date command to the log.txt file.
$ gcc hello.c 2> error_file
The gcc is a C language compiler program. If an error is encountered during compilation, then it will be redirected to error_file. The > character is used for a success result and 2> is used for error-result redirection. We can use error_file for debugging purposes:
$ find . -name "*.sh" > success_file 2> /dev/null
In the preceding example, we redirect output or success results to success_file, and errors to /dev/null. /dev/null is used to destroy the data, which we do not want to be shown on screen.
$ find . -name "*.sh" &> log.txt
The preceding command will redirect both output and errors to log.txt.
$ find . -name "*.sh" > log.tx 2>&1
The preceding command will redirect the result to log.txt and send errors to where the output goes, such as log.txt.
$ echo "File needs an argument" 1>&2
The preceding command will send standard output to the standard error. This will merge the output with the standard errors. A summary of all I/O redirection commands is as follows:

Run the following command:
$ touch filea fileb filec fileab filebc filead filebd filead $ touch file{1,2,3}
Try out the following command:
$ ls s* $ ls file $ ls file[abc] $ ls file[abc][cd] $ ls file[^bc] $ touch file file1 file2 file3 ... file20 $ ls ????? file1 file2 file3 $ ls file* file file1 file10 file2 file3 $ ls file[0-9] file1 file2 file3 $ ls file[0-9]* file1 file10 file2 file3 $ ls file[!1-2] file3
- 過程控制工程及仿真
- Go Machine Learning Projects
- Hands-On Artificial Intelligence on Amazon Web Services
- INSTANT Autodesk Revit 2013 Customization with .NET How-to
- 大數據驅動的設備健康預測及維護決策優化
- 工業機器人應用案例集錦
- MCGS嵌入版組態軟件應用教程
- 深度學習與目標檢測
- Linux嵌入式系統開發
- 工業機器人集成應用
- Puppet 3 Beginner’s Guide
- 運動控制系統(第2版)
- Learning iOS 8 for Enterprise
- AVR單片機C語言程序設計實例精粹
- Mastering Microsoft Dynamics 365 Customer Engagement