shell文件描述符及重定向

Posted 生成风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell文件描述符及重定向相关的知识,希望对你有一定的参考价值。

  文件描述符是与文件输入、输出相关联的整数。它用来跟踪已经打开的文件。最常见的文件描述符是stdin、stdout、stderr。我们甚至可以将某个文件描述的内容重定向到另一个文件描述符中。文件描述符0,1,2是系统预留的:

0----stdin(标准输入)  1----stdout(标准输出)  2----stderr(标准错误)

实例

(一)、将输出的文本重定向到一个文件中:

[[email protected] shell]# echo "this is a example test"> temp.txt
You have new mail in /var/spool/mail/root
[[email protected] shell]# cat temp
cat: temp: 没有那个文件或目录
[[email protected] shell]# cat temp.txt
this is a example test
[[email protected] shell]# echo this is a example test> temp.txt
[[email protected] shell]# cat temp.txt
this is a example test
[[email protected] shell]# echo ‘this is a example test‘> temp.txt
[[email protected] shell]# cat temp.txt
this is a example test

  (二)、将文本追加到目标文件

[[email protected] shell]# echo ‘this is a example test‘>> temp.txt
[[email protected] shell]# cat temp.txt
this is a example test
this is a example test
[[email protected] shell]# echo this is a example test>> temp.txt
[[email protected] shell]# cat temp.txt
this is a example test
this is a example test
this is a example test

  (三)、cat 文件名 :查看文件的内容

  (四)、标准错误的重定向,当命令输出错误信息时,stderr信息就会被打印出来

[[email protected] shell]# ls +
ls: 无法访问 +: 没有那个文件或目录
[[email protected] shell]# echo $?
2
[[email protected] shell]# ls + > out.txt
ls: 无法访问 +: 没有那个文件或目录
[[email protected] shell]# ls + 2> out.txt
[[email protected] shell]# cat out.txt
ls: 无法访问 +: 没有那个文件或目录

  第一次的ls + 中的+是非法参数,因此命令将执行失败;

  echo $? 能输出上个命令执行后状态;

  第三句的ls + >out.txt将执行失败的信息输出到了屏幕,并不是文件中,最后一句加上文件描述符才输出到了文件中,然后可以查看到文件的内容;

  (五)、自定义文件描述符

  创建文件描述符进行文件读取;

  

[email protected] shell]# echo this is s test > input.txt
[[email protected] shell]# exec 3< input.txt
[[email protected] shell]# cat &3
[1] 8171
bash: 3: command not found
[[email protected] shell]# cat 3
cat: 3: 没有那个文件或目录

[1]+  Stopped                 cat
[[email protected] shell]# cat <&3
this is s test

 

以上是关于shell文件描述符及重定向的主要内容,如果未能解决你的问题,请参考以下文章

Linux管道及重定向

Linux文件查看及重定向

Vue--参数传递及重定向

Linux基础管理—— " 标准IO及重定向及管道 "

请求及重定向

url传参及重定向