Day28 资料流重新导向I

今天要来介绍的部分是资料流重新导向的部分,这个东西其实就是字面上的意思,就是将某个指令成功执行後所要输出到萤幕上的资料,将那些资料重新导向到其他地方。

那至於什麽是资料流重新导向,我们要从指令的执行结果开始谈起。

执行一个指令後,这个指令可能会由档案读取资料,经过处理後在将结果输出到萤幕上。那输出的部分可以分为两种来看,一种是标准输出,而另外一种就是标准错误输出,这两种输出预设都是输出到萤幕上。

这边我们稍微细谈一下什麽是标准输出跟标准错误输出,前者代表的是指令执行所回传的正确讯息,後者代表的是指令执行失败後所回传的错误讯息。就跟刚刚提到的一样,两者预设输出的区域都是萤幕,理所当然萤幕肯定乱。要处理这个问题,基本上就是透过资料流重新导向将标准输出跟标准错误输出分别导向至不同的档案或装置,分别传送的特殊字元如下

(1)标准输入:代码为0,使用<或<<
(2)标准输出:代码为1,使用>或>>
(3)标准错误输出:代码为2,使用2>或2>>

那因为资料流重新导向而建构出来的档案会具备以下特性

(1)假如该档案不存在,系统会自动建立该档案
(2)假如该档案存在,系统会先将该档案的内容清空,在写入资料
(3)也就是说,以>输出到一个已存在的档案中,该档案就会被覆盖
(4)如果不想档案被覆盖,善用>>跟2>>

上面这几点对标准输出跟标准错误输出是一样的

那以下是指令组合代表的意义
1>:用覆盖的方法,将正确的资料输出到指定的档案或装置上
1>>:用累加的方法,将正确的资料输出到指定的档案或装置上
2>:用覆盖的方法,将错误的资料输出到指定的档案或装置上
2>>:用累加的方法,将错误的资料输出到指定的档案或装置上

以上就是本人介绍资料流重新导向的部分,如果有缺漏的部分,也麻烦大家多指教


<<:  Apollo Client Network Errors

>>:  Day28 Networking & http

Day18|【Git】存在 .git 目录里的东西 - Commit 与 Tag(下)

在上一篇章节介绍过 Blob 物件与 Tree 物件後,接下来让我们认识 Commit 与 Tag ...

LiteX/VexRiscv 简介与使用 (一) 太初有光

虽然之前musl-libc的部份尚有pthread的canceling point仍有bug,但是撑...

[NestJS 带你飞!] DAY30 - 实战演练 (中)

API 设计 前面有提到这次实作的系统共有两大资源,分别是:使用者 (user) 与 待办事项 (t...

Day 7 - Maximum Subarray

大家好,我是毛毛。ヾ(´∀ ˋ)ノ 废话不多说开始今天的解题Day~ 53. Maximum Sub...

Day22 ( 游戏设计 ) 小玛莉游戏机

小玛莉游戏机 教学原文参考:小玛莉游戏机 这篇文章会介绍如何使用「函式」、「逻辑判断」、「当按钮按下...