foreverys

导航

数据流重定向

1.什么是数据流重定向
standard output与standard error output
数据流重定向可以将stdout与stderr分别传送到其他的文件或设备去,而分别传送所用的特殊字符则如下所示:
1.标准输入(stdin):代码为0,使用<或<<
2.标准输出(stdout):代码为1,使用>或>>
3.标准错误输出(stderr):代码为2,使用2>或2>>
 
>>:改符号表示累加。当文件不存在时系统会主动创建文件;若该文件已存在,则数据会在该文件的最下方累加进行。
覆盖(>,2>),累加(>>,2>>).
 
/dev/null 垃圾桶黑洞设备与特殊写法
/dev/null可以吃掉任何导向这个设备的信息。
例如忽略错误信息:2>/dev/null
将正确与错误数据写入同一文件
$ find /home -name .bashrc > list 2> list <==错误
$ find /home -name .bashrc > list 2>&1 <==正确
 
standard input: <与<<
<:将原本由键盘输入的数据改由文件内容来替代。
 
<<:它代表的是结束输入的意思
# cat > catfile << "eof"
>This is a test.
>OK now stop
>eof  <==输入这关键字,立刻就结束而不需要输入[ctrl] + d
 
# cat catfile
This is a test.
OK now stop    <==只有这两行,不会存在关键字那一行。
 
2.命令执行的判断依据:;, &&, ||
cmd;cmd:不考虑命令相关性的连续命令执行
# sync; sync; shutdown -h now
 
$?:命令回传码
 
cmd1&&cmd2:若cmd1执行完毕且正确执行($?=0),则开始执行cmd2;若cmd1执行完毕且为错误($? != 0),则cmd2不执行
 
cmd1||cmd2:若cmd1执行完毕且正确执行($?=0),则cmd2不执行;若cmd1执行完毕且为错误($? != 0),则开始执行cmd2.
 
例子就不写了,这种逻辑判断,可以在脚本里面用if else来实现,这里了解一下就行了。

 

posted on 2015-08-31 18:57  foreverys  阅读(316)  评论(0编辑  收藏  举报