testing
cat file test
由于加入
>
在
cat
后,所以那个
catfile
会被主动的½立,而内容就是刚刚键盘上面输入的那两行
数据了。
唔!那我能不能用纯文本文件取代键盘的输入,也就是说,
用某个文件的内容来取代键盘
的敲击呢?
可以的!如下所示:
范例七:用
stdin
取代
键盘
的
输
入以½立新
文件
的
简单
流程
[dmtsai@study ~]$
cat > catfile < ~/.bashrc
[dmtsai@study ~]$
ll catfile ~/.bashrc
-
rw
-
r
--
r
--
. 1 dmtsai dmtsai
231
Mar 6 06:06 /home/dmtsai/.bashrc
-
rw
-
rw
-
r
--
. 1 dmtsai dmtsai
231
Jul 9 18:58 catfile
#
注意看,
这两个
文件
的大小
会
一模一
样
!几乎像是使用
cp
来
复制一般!
这东西非常的有帮助!尤其是用在类似
mail
这种指令的使用上。
理½
<
之后,再来则是怪可怕一
把的
<<
这个连续两个小于的符号了。
他代表的是『½束的输入字符』的意思!举例来½:『我要
用
cat
直½½输入的讯息输出到
catfile
中,
且当由键盘输入
eof
时,该次输入就½束』,那我可
以这样做:
[dmtsai@study ~]$
cat > catfile << "eof"
>
This is a test.
>
OK now stop
>
eof
<==
输
入
这关键词
,立刻就
½
束而不需要
输
入
[ctrl]+d
[dmtsai@study ~]$
cat catfile
This is a test.
OK now stop
<==
只有
这两
行,不
会
存在
关键词
那一行!
看到了吗?利用
<<
右侧的控制字符,我们可以终止一次输入,
而不必输入
[crtl]+d
来½束哩!这
对程序写作很有帮助喔!好了,那么为何要使用命令输出重导向呢?我们来说一说吧!
.
屏幕输出的信息很重要,而且我们需要½他存下来的时候;
.
背景执行中的程序,不希望他干扰屏幕正常的输出½果时;
.
一些系统的例行命令
(
例如写在
/etc/crontab
中的文件
)
的执行½果,希望他可以存下来时;
.
一些执行命令的可能已知错误讯息时,想以『
2> /dev/null
』½他丢掉时;
.
错误讯息与正确讯息需要分别输出时。
当然还有很多的功能的,最简单的就是网友们常常问到的:『
为何我的
root
都会收到系统
crontab
寄
来的错误讯息呢
』这个咚咚是常见的错误,
而如果我们已经知道这个错误讯息是可以忽略的时候,
嗯!『
2> errorfile
』这个功能就很重要了吧!
了½了吗?
问:
假设我要½
echo "error message"
以
standard error output
的格式来输出,该如何处置?