shell脚本中的“2< " ">&2" "&>”

文章原地址 :http://www.linuxidc.com/Linux/2014-07/104707.htm

Linux标准文件描述符:

文件描述符 缩写 描述
0 STDIN 标准输入
1 STDOUT 标准输出
2 STDERR 标准错误

标准输入和标准输出指的就是键盘和显示器。

当文件描述符(0,1,2)与重定向符号(<)组合之后,就可以重新定向输入,输出,及错误。

  • command 2>file1
    • 命令执行的错误信息保存到了file1文件中。显示屏只是显示正确的信息。
  • command 1>file1 2>file2
    • 命令执行后,没有显示。因为正确输出到file1,错误定向到file2
  • command &>file1
    • 命令执行后,输出和错误都定向到file1中

在shell脚本中,可以定义“错误”输出到STDERR指定的文件.需要在重定向符和文件描述符之间加一个and符(&)

  1. cat test
  2. #!/bin/bash
  3. echo " this is ERROR ">&2
  4. echo "this is output"
  5. $

运行脚本

  1. [root@localhost ~]#./test 2>file1
  2. thisis output
  3. [root@localhost ~]# cat file1
  4. thisis ERROR

可以再脚本中使用exec命令:

  1. exec1>file1
  2. exec2>file2
  3. echo " this is ERROR ">&2
  4. echo "this is output"

运行如上脚本,则输出都在file1和file2中。

也可以使用exec 0<file1,从文件1中读取输入。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值