在写 Shell 脚本的时候,我们经常会想将命令的输出结果保存到文件中,或者将命令的执行结果保存到日志记录中。这时候就需要把命令的输出结果重定向。而要进行重定向,就要了解 Linux 的输入输出流。
在 Linux 中有三个经常用到的输入输出流,他们分别是:
在 Linux 系统中,系统保留了 0(标准输入)、1(标准输出)、2(标准错误) 三个文件描述符分别代表它们。
标准输入指的是从键盘这些标准输入设备读取到的数据。一般情况下标准输入重定向的很少用到,因此我们就不展开说。
标准输出则是通过屏幕输出的这些数据。我们可以通过标准输出重定向来让数据保存到文件里。例如:
YuRongChandeMacBook-Pro:chenshuyi yurongchan$ echo "hello shell,I'm shuyi" > out.txt
YuRongChandeMacBook-Pro:chenshuyi yurongchan$ cat out.txt
hello shell,I'm shuyi
可以看到 echo 命令的输出并没有在屏幕上打印出来,而是保存在了 out.txt 文件中。
其实上面这种方式和echo "hello" 1> out.txt
这条命令的结果是一样的。或许是因为标准输出重定向比较频繁,所以就把数字 1 省略了。
标准错误是指输出的错误信息。例如当我们运行一条错误的指令时,控制台会提示凑无信息,这些就是错误信息。如果我们要重定向错误信息到文件中,我们可以用2>
这个操作符。例如:
YuRongChandeMacBook-Pro:chenshuyi yurongchan$ ls +
ls: +: No such file or directory
YuRongChandeMacBook-Pro:chenshuyi yurongchan$ ls + 2> error.txt
YuRongChandeMacBook-Pro:chenshuyi yurongchan$ cat error.txt
ls: +: No such file or directory
原文链接:/shell/996136.html