tee

将输出同时重定向到文件和屏幕:

date | tee now

shell编程笔记(一)_重定向

cat >> test << delimiter

使用自定义delimiter来创建一个文档
delimiter是定界符,可自定义,我们使用的是追加重定向
上面这条命令的意思就是:

当前文档作为cat的输入,将cat的输出(追加)重定向到test中

当前文档指的就是这一部分:
shell编程笔记(一)_重定向_02

使用文件描述符进行重定向(0 1 2)

其实就是将标准输入、标准输出和标准错误重定向到指定的文件

exec 1>out

执行完这条命令之后,输出就会被重定向到out文件中,屏幕上不会再有输出
要想重新将输出重定向到终端,执行:

exec 1>/dev/tty

我们用的最多的其实是普通的输入输出重定向

cmd n>file
cmd n>>file

改变n的值就可将cmd命令的输出信息或者错误信息重定向到file文件中

cmd 0<file

这条命令就是将输入重定向到file文件

重定向标准输出和标准错误到单独的文件

cmd 1> file1 2> file2

上面这条命令把cmd命令的输出重定向到了file1,将标准错误重定向到了file2
我们也可以把标准输出和标准错误重定向到同一个文件中,写法如下:

cmd 1> file1 2>&

/dev/null

说明一下这个文件,他比较特殊,如果我们使用下面这条命令将cat命令的输出重定向到一个文件file中,file文件中的内容会变为空:cat /dev/null > file
shell编程笔记(一)_文件描述符_03

重定向两个文件描述符,exec n>&m

比如说,我们现在把一个文件描述符和一个文件关联了起来:

exec 4>file

然后我们再执行这条命令

exec 5>&4

执行完这条命令之后,文件描述符4和5就都指向了文件file,也就是说,5就是4的拷贝
这时我们再执行ls 1>&5,和ls 1>&4的效果是一样的
ls的输出都会被重定向到file文件中