shell_61.Linux记录消息

记录消息
1.有时候,也确实需要将输出同时送往显示器和文件。与其对输出进行两次重定向,不如改用特殊的 tee 命令。
tee 命令就像是连接管道的 T 型接头,它能将来自 STDIN 的数据同时送往两处。
一处是STDOUT,另一处是 tee 命令行所指定的文件名:

tee filename 


由于 tee 会重定向来自 STDIN 的数据,因此可以用它配合管道命令来重定向命令输出:

$ date | tee testfile 
Sun Jun 21 18:56:21 EDT 2020 
$ cat testfile 
Sun Jun 21 18:56:21 EDT 2020 
$ 

2.输出出现在了 STDOUT 中,同时写入了指定文件。注意,在默认情况下,tee 命令会在每次使用时覆盖指定文件的原先内容:

$ who | tee testfile 
rich pts/0 2020-06-20 18:41 (192.168.1.2) 
$ cat testfile 
rich pts/0 2020-06-20 18:41 (192.168.1.2) 
$ 

3.如果想将数据追加到指定文件中,就必须使用-a 选项:

$ date | tee -a testfile 
Sun Jun 21 18:58:05 EDT 2020 
$ cat testfile 
rich pts/0 2020-06-201 18:41 (192.168.1.2) 
Sun Jun 21 18:58:05 EDT 2020 
$ 

4.利用这种方法,既能保存数据,又能将其显示在屏幕上:

$ cat test22 
#!/bin/bash 
# using the tee command for logging 
tempfile=test22file 
echo "This is the start of the test" | tee $tempfile 
echo "This is the second line of the test" | tee -a $tempfile 
echo "This is the end of the test" | tee -a $tempfile 
$ ./test22 
This is the start of the test 
This is the second line of the test 
This is the end of the test 
$ cat test22file 
This is the start of the test 
This is the second line of the test 
This is the end of the test 
$ 


现在,你可以在为用户显示输出的同时再永久保存一份输出内容了

你可能感兴趣的:(linux,运维,服务器)