Linux中 2>&1 的用法

Linux中 2>&1 的用法

  在跑视频数据集的时候,经常看到脚本文件中出现了 sh run_pascal.sh 2>&1 | tee train.log  类似的用法,那么2>&1究竟是怎么用的呢?

 

在linux中,0表示标准输入,即stdin;1表示标准输出,即stdout;2表示标准错误,即stderr。

>表示重定向,&表示取地址,那么&1就是取到了标准输出的地址,也就是 2>&1表示的是将标准错误重定向到了标准输出,也就是将运行脚本中出错的信息重定向到了标准输出。

 

举例:

  ls 2>1测试一下,由于ls命令会列出当前目录的文件列表,不会产生错误信息,于是会产生一个空的文件1。
  ls xxx 2>1测试,ls xxx会列出xxx的文件列表,如果没有xxx文件,会产生错误信息,于是会产生一个有错误信息的文件1。
  ls xxx 2>&1测试,如果没有xxx文件,会产生错误信息在屏幕上,即标准输出。
  ls xxx >out.txt 2>&1, 实际上就是ls xxx 1>out.txt 2>&1。如果没有xxx文件,会产生一个标准错误重定向到了标准输出,而标准输出又重定向到了out.txt,于是结果会产生一个有错误信息的文件out.txt。如果有xxx文件,那么结果会将输出存入文件out.txt。总的说来,就是将输出和错误都存入了文件out.txt。

 

那么sh run_pascal.sh 2>&1 | tee train.log 也就好理解了,就是将sh run_pascal.sh的运行结果(输出和错误)都重定向到标准输出,同时,利用tee命令将信息存入train.log文件。

 

posted on 2018-10-04 11:15 Magic_chao 阅读(...) 评论(...) 编辑 收藏

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值