shell脚本中的0 1 2文件描述符

在shell脚本中常用的文件描述符有三个,分别为:

  0: 标准输入

  1: 标准输出

  2: 标准错误

经常会看到脚本中出现"2>&1"或"2>error.txt"或"command >file.out 2>file.err"等描述.

首先'>'或者'>>'是重定向符,'&'是一个描述符,如果1或2前不加&,那就会变成文件1或文件2.

测试目录:

    test
    └── test.txt

例如: 

cat test.txt  会直接显示test.txt中的内容
cat test.txt >1  会将应该输出的内容写入1文件中
cat test.txt >&1 同cat test.txt,直接输出文件内容
cat xxx >1 会报错文件不存在,生成文件1,但1中为空
cat xxx >1  2>&1

'>1'表示将输出的内容写到文件1中,2是错误描述符;

'2>&1'表示将标准错误重定向到文件1中.生成文件1,文件不存在的错误会在1中

cat xxx >1  2>2 会生成1,2两个文件,1会接收即将输出的文件内容,如果xxx不存在,1中为空,2中为报错信息
原文地址:https://www.cnblogs.com/wangtaobiu/p/14298499.html