如何理解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 文件