linux 标准输出、标准错误输出、以及shell小技巧

1.Linux常用的有:

1)  标准输入 stdin  代码为0,使用< 或<<

2)  标准输出 stdout 代码为1,使用> 或 >> ,这里把1给省略了,

3)  标准错误输出 stderr代码为2,使用 2> 或2>>

其中:标准输出指的是『命令运行所回传的正确的信息』,而标准错误输出可理解为『命令运行失败后,所回传的错误信息』

 

2.如果想让信息都不展示,则将输入到黑洞垃圾桶/dev/null,不输出错误信息2>/dev/null

3.标准输出标准错误输出都放在同一个文件,就这样做:

1)都重定向到标准输出通道&1:2>&1,都重定向到标准错误输出通道1>&2,可以简写为>&2,这里的&可以理解成”the same as”

 z

4.小小tips

为啥经常在linux的shell脚本会看见echo “hello” >&2,这样的写法?

这是linux shell脚本的一个小技巧,unix有一个哲学,“Rule of silence”,一个好脚本的输出不应该太啰嗦,不然不利于和其他程序协作,但很多情况我们又希望看到脚本的执行进度。处理这个问题的一个方法就是把进度写到stderr中,这样既不会影响标准输出、和其他程序的协作,同时我们在屏幕又可以看到脚本的相关进度信息,如:

备注我们有a.txt 但是没有b.txt文件,在屏幕打印的日志如下,实在不懂,就自己打印试试。

ls a.txt b.txt >&2

ls: b.txt: No such file or directory

a.      Txt

 

很多不是脚本的应用也会采用这种方式,比如执行java -version,输出的信息是到stderr,而不是stdout

另外提醒一下,这种技巧主要用在Bourne系列的Shell,在csh或者tcsh里是不能工作的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值