tee--重定向到文件并打印到屏幕

在命令行 输入 tee --help 可以查看帮助
功能说明:读取标准输入的数据,并将其内容输出成文件。

语  法:tee [-ai][--help][--version][文件...]

补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件(此时文件不存在会创建新文件)。

参  数:
 -a或--append  附加到既有文件的后面,而非覆盖它.
 -i-i或--ignore-interrupts  忽略中断信号。
 --help  在线帮助。
 --version  显示版本信息。

问题背景

有时候用 shell 编程需要把中间信息重定向到文件但调试的时候又希望同时能打印到屏幕。

echo 'Debug: this is a debug infor.' > _log

这条命令只会把信息保存到 _log 文件,不会输出到屏幕。

 

要达到相应的效果,必须写两条命令:

echo 'Debug: this is a debug infor.' > _log

echo 'Debug: this is a debug infor.'

这样解决,感觉太过笨拙~


tee 命令

tee 命令就是专门用来解决这类问题: tee 命令是在不影响原本 I/O 的情况下。

echo 'Debug: this is a debug infor.' | tee _log

这行代码便可以达到我们的目的,tee 程序接管了调试信息,然后将它打印出来并输出到(默认是覆盖)文件;如果想以追加的方式输出到文件( echo 'Debug: this is a debug infor.' >> _log 的效果),则需要在调用 tee 时加上 -a选项:

echo 'Debug: this is a debug infor.' | tee -a _log

 

 

 

 

你可能感兴趣的:(Linux,指令)