重新点亮shell————管道和重定向[二]

Posted 程序员其实就是一个写文档的工作,代码只是文档的一部分,一切皆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重新点亮shell————管道和重定向[二]相关的知识,希望对你有一定的参考价值。

前言

简单介绍一下管道和重定向。

正文

  1. 管道和信号一样,是进程通信的方式之一

管道符是"|",将前一个命令执行的结果传递给后面的命令。

比如说:

ls -l | more

就是第一个的输入,然后给第二个的输入,这其实更好理解。

2.重定向符号

一个进程默认会打开标准输入、标准输出、错误输出三个文件的描述符。

a 输入重定向符号 "<"

read var < /path/to/a/file

b 输出重定向 ">" ">>" "2>" "$>"

echo 123 > /path/to/a/file

这里有4个不同的符号。

第一个符号是:> 这个表示清空里面的内容,然后填入新内容。

第二个符号:>> 这个是追加的意思。

第三个符号:2> 如果前面的命令产生错误才会输入进去。

第四个符号: $> 无论前面正确还是错误都输出到指定文件之中

c 输入和输出重定向组合使用

cat > /path/to/a/file << EOF

I am $USER

EOF

下面来演示一下重定向的命令了。

第一个 wc -l <,这个可以统计一个文件里面有多少行。

然后输入重定向:

echo "123" > /tmp/a.txt

然后我们进行追加:

echo "123" >> /tmp/a.txt

同样来输出错误的。

echo "123" 2> /tmp/a.txt

如果没有错误那么会被清空。

echo "123" 2>> /tmp/a.txt

这样就是追加了。

那我们来试一下错误的:

nocmd 2>> /tmp/a.txt

如果想无论是错误还是正确都输入到文件中去:

nocmd 2>> /tmp/a.txt

这样就行。

那么看下输入和输出有什么组合可以有新效果。

cat > /path/to/a/file << EOF

I am $USER

EOF

就是把I am $USER 输入到 /path/to/a/file中。

如果是追加的话,那么是:

cat >> /path/to/a/file << EOF

I am $USER

EOF

以上是关于重新点亮shell————管道和重定向[二]的主要内容,如果未能解决你的问题,请参考以下文章

Linux shell编程:管道和重定向

Linux管道及重定向

shell脚本基础!

Shell编程规范与变量

linux进程管道和重定向

shell学习-常用语句