Linux重定向
- 前言
- 标准文件描述符Standard File Descriptor
- 重定向输入Redirecting Input
- 重定向输出 Redirecting Output
- 附加重定向输出 Appending Redirected Output
- 重定向标准输出和标准错误 Redirecting Standard Output and Standard Error
- 附加标准输出和标准错误 Appending Standard Output and Standard Error
- Here Documents
- Here Strings
- 复制文件描述符 Duplicating File Descriptors
- 移动文件描述符 Moving File Descriptors
- 打开文件描述符进行读写 Opening File Descriptors for Reading and Writing
- 尾
前言
本文主要在于总结Linux重定向的问题并分享一些容易发生的错误…
标准文件描述符Standard File Descriptor
Linux的标准文件描述符有三个
文件描述符 | 文字描述 |
---|---|
0 | 标准输入(STDIN) |
1 | 标准输出(STDOUT) |
2 | 标准错误(STDERR) |
重定向输入Redirecting Input
对于终端来说,shell从STDIN文件描述符对应的键盘获得输入.
可以使用标准输入重定向符号(<)来指定文件替代键盘输入
假设一个文本文件words的内容为
// words
Linux Jingbo Author Editor
I LOVE LINUX
这是一个读取文件的shell
#!/bin/bash
#display.sh
filename=$1
while read word
do
echo "$word"
done < $filename
#$1代表的是shell的第二个参数代表文件名
运行这个脚本
sh ./display.sh words
输出的内容与word中的内容相同,read 从文本words中读取内容
重定向输出 Redirecting Output
有些时候我们可能不想让输出输出到屏幕,而是想让它输出到文件这是就需要重定向输出(>)
列如
cat /etc/passwd > file
这样屏幕就不会显示任何输出,任何输出都会输出到file内容当中
附加重定向输出 Appending Redirected Output
重定向输出默认会清除掉原文的内容,但有时候可能想要保留源文件的内容这时候可以使用附加重定向输入(>>)
例如 :
$ echo