Loading...

如何理解cat的输入输出重定向

先来看看两段效果一样的shell脚本代码:

版本1:

caibh@book:~/test$ cat << EOF > aa.txt
> hello
> world
> EOF

caibh@book:~/test$ cat aa.txt
hello
world

版本2:

caibh@book:~/test$ cat > bb.txt << EOF
> java
> ruby
> EOF

caibh@book:~/test$ cat bb.txt
java
ruby

分析一下:

> 是输出重定向,<<是输入重定向,重定向的主体是cat命令

所以,不管是<< EOF > aa.txt,还是> bb.txt << EOF

其实就是一个命令的两个选项,排序不分先后。<< EOF是一部分,> aa.txt是另一部分。

理解命令的含义:

对于cat << EOF > aa.txt,应该这么理解:

把cat命令的输入重定向为键盘输入,把cat命令的输出重定向到 aa.txt 文件

对于cat > bb.txt << EOF,应该这么理解:

把cat命令的输入重定向为键盘输入,把cat命令的输出重定向到 bb.txt 文件

posted @ 2021-03-04 13:11  choizzzi  阅读(608)  评论(0编辑  收藏  举报