文件描述符和重定向,标准输入,标准输出,标准错误-dps文件怎么打开

文件描述符和重定向,标准输入,标准输出,标准错误-dps文件怎么打开

文件描述符是与文件输入输出相关联的整数,他们用来跟踪一打开的文件,最常见的文件描述符是stdin,stdout和stderr。

我们在编写脚本的时候会使用输入输出,当然也肯定会有错误。但是我们无法仅靠输出文本,是无法判断那些是正常文本,那些是错误文本。所以我们通过文件描述符来解决这个问题。

文件描述符:

0——stdin 标准输入

1——stdout 标准输出

2——stderr 标准错误

首先,我们看看如何输出:

echo "输出一些文本到" > target.txt

这种输出会把target.txt文件清空。

如果希望将输出追加到文件中,可以使用:

echo "再输出一些文本到" >> target.txt

可以使用cat来查看文件:

cat target.txt

当使用重定向操作符(> 或者 >> )时,内容不会出现在shell,而是直接输入到文件中,这时重定向操作符都是用了默认的文件描述符1,如果要使用其他描述符,要把描述符放在操作符之前。

举个例子:

ls 不存在的文件 > out.txt

这样会显示:

ls: 不存在的文件: No such file or directory

这时候标准错误并没有被输入到文件中,因为我们的默认描述符是1,所以也只有标准输出会输出到文件中。

如果我们这时候用:

ls 不存在的文件 2> out.txt

这时候stderr就不会显示在shell中,而是输出到了文件中。

推荐阅读