你的位置:首页 > 操作系统

[操作系统]shell script 学习笔记


1、将标准输出(stdout)和标准错误输出(stderr)分别重定向到两个不同的文件

其中符号'>'默认将标准输出重定向,意思和'1>'相同,‘2>'表示重定向标准错误输出,数字1和2其实是文件描述符,在Linux下默认1为标准输出STDOUT,2为标准错误输出STDERR

2、将标准输出和标准错误输出重定向到同一个文件中,共有下图所示三种写法,后两种写法可以认为符号&是作为特殊标记了,第一种写法则可以看做先将STDOUT输出到both文件,“2>&1”则可将1理解为标准输出重定向的文件,然后“2>&1”相当于一个赋值操作,将文件描述符2指向的文件赋值为文件描述符1指向的文件

3、重定向符'>'默认会将目标文件清空(如果存在的话),然后添加重定向的内容。如果需要在目标文件的末尾进行添加,则需要使用">>"重定向符,如下所示

4、/dev/null是Unix/Linux系统中一个特殊的设备,它并不是真正的设备,所有你认为没用的数据都可以重定向到它,并且不会占据任何磁盘空间,如下图就将错误信息扔进了/dev/null中

5、将多个命令的输出重定向到同一个文件有以下两种方式,但是基于的原理是完全不同的,花括号那组其实只是将括号中命令的输出集中重定向而已,但是普通括号内的命令是在子shell,也就是subshell中运行的。这时我们就会发现,因为cd指令的存在,第一条命令运行后我们仍在之前的目录(因为subshell中位置的改变与父shell无关),但是第二条指令运行之后,我们就在上级目录了

6、将一个程序的输出作为另一个程序的输入,最常见的如下图所示,但是需要注意的是,这两个程序是运行在不同的subshell中的!

7、将管道中的数据流备份:使用如下所示是tee命令,它将数据量输入下一级管道的同时,将它们备份到tee.file文件中

8、将数据重定向到多个文件中,如下图所示,其实本质上就是将写入不同文件描述符的数据重定向到不同的文件中,这样的话,在程序中可以不事先打开文件,而直接向文件描述符写数据,例如:write(3,buf,255),就是直接向文件描述符3写数据,而我事先并没有打开文件的操作

9、如果没有使用特殊的手法,例如将STDERR重定向至STDOUT或者在程序中就进行重定向,那么管道只重定向STDOUT,我们没有办法只重定向STDERR而不重定向STDOUT

10、交换STDOUT和STDERR:如果你想要将STDOUT输出到stdout.logfile中,并且通过tee将STDERR即输出到屏幕又输出到stderr.logfile。这时就需要使用下图所示的方法。其实本质上就是交换了STDOUT和STDERR。类似于两个整数的交换。首先将描述符3赋值为1,即STDOUT,再将标准输出的内容输出到stdout.logfile中,最后"2>&3"表示将标准错误的数据往标准输出中写,因为此时描述符3的值就是标准输出,这样标准错误的内容就能通过标准输出通过管道了

11、我们知道重定向符号'>'会覆盖目标文件中的内容,那么为了防止误操作导致重定向覆盖了我们原先不想被覆盖的文件,我们可以采用如下的方法,如果要恢复默认设置,使用“set +o noclobber”,如果在已经设置了noclobber的情况下,仍然强行做一次重定向覆盖操作,则可使用类似“echo do it >| my.file”的方法,“>|”表示强行重定向覆盖操作

 

 

参考文献:《bash Cookbook》,Carl Albing




去马尔代夫哪个旅行社好马尔代夫旅游攻略大全马尔代夫旅游攻略深圳到以色列旅游深圳去以色列旅游报价锦绣中华民俗村门票预约电话?深圳锦绣中华预订优惠多少? 锦绣中华民俗村官网,深圳锦绣中华官方网站。 锦绣中华民俗村攻略?深圳锦绣中华乘车路线? 组图:金秋赏红叶 盘点安徽不能错过的好地方 到宝墨园南粤苑交通路线?宝墨园和南粤苑距离多远? 宝墨园南粤苑玩点是什么?番禺宝墨园与南粤苑区别在哪里? 宝墨园南粤苑门市价多少?宝墨园南粤苑联票多少钱? 南粤苑与宝墨园怎么样?广州南粤苑景点介绍? 2015清远黄腾峡漂流开漂时间?黄腾峡漂流什么时间开放? 上林霞客古渡门票包括什么?霞客古渡门票包含游船吗? 霞客古渡景区需要坐船吗?上林霞客古渡坐船多少钱? 古龙峡漂流能漂多久?清远古龙峡漂流多少米? 四川甘孜州藏历年 康定海螺沟购物特产:贝母 四川康定特色菜:金钩玉米馍和“麦秋”糕点 四川甘孜洲的待客礼俗 ICS843001AG-21LF Datasheet ICS843001AG-21LF Datasheet IDT7201LA15JGI8 Datasheet IDT7201LA15JGI8 Datasheet IDT2305A-1DCGI8 Datasheet IDT2305A-1DCGI8 Datasheet 从深圳去捷克旅游报价 从深圳去捷克旅游报价 从深圳去捷克旅游报价 捷克旅游线路 捷克旅游线路 捷克旅游线路 捷克旅游团报价 捷克旅游团报价 捷克旅游团报价