linux命令输出到屏幕的同时保存到文件

linux命令输出到屏幕的同时保存到文件,第1张

tee用于把命令结果打印在屏幕上并同时保存到文件

tee用法

描述:从标准输入中读取并同时写入到标准输出和指定的文件上

选项:

    -a,--append:不覆盖,而是追加输出到指定的文件中

    -i,--ignore-interrupts:忽略中断信息

    若指定的输出文件为'-',则再次输出到标准输出上

实例:

    tee Exampletxt #将标准输入中输入的内容同时输出到Exampletxt和标准输出上

实践:

例如 ifconfig | tee ifconfiglog

查看iconfiglog

注:

标准输入一般有键盘和其它文件,标准输出有屏幕等。tee只能进行标准输入的输出,对于错误输入是不能输出的。

在调试脚本时,想要每个命令的执行过程都输出到屏幕或者文件中,以便后续查看,如何 *** 作呢?首先脚本第一行要写为“#!/bin/bash -x”,这样会把每个命令的执行记录都输出到屏幕,若还要输出到指定文件,要用到tee,但tee只能进行标准输入,对于标准输入和错误输入要用到下式:

/filenamesh 2>&1 | tee outputlog   或者直接 bash -x /filenamesh 2>&1 | tee outputlog

今天调试一个bash,要把屏幕的输出结果存到log文件中,开始输入$bash -x /testsh > log 结果发现log里只存放了程序的执行结果,后来在cu的一篇帖子里>

直接使用输出重定向到你想要的文件即可,不过将所有的控制到信息输出到一个文本文件,只有两个办法:

①:修改所有程序的输出路径:printf函数 echo几乎是不可能完成的任务

②:修改linux的标准输出路径:

句柄 句柄的数字代号 描述

STDIN 0 键盘输入

STDOUT 1 输出到命令提示符窗口

STDERR 2 错误输出到命令提示符窗口

将标准输出 标准输出的默认设置更改为你要保存的文件,这样就会控制台的信息就会输出到你指定的文件里面

获得当天的日期:date +%Y%m%d,输出: 20181130。

需要使用今天之前或者往后的日期,这时可以使用date的 -d参数:

1、获取明天的日期:date -d next-day +%Y%m%d。

2、获取昨天的日期:date -d last-day +%Y%m%d。

3、获取上个月的年和月:date -d last-month +%Y%m。

4、获取下个月的年和月:date -d next-month +%Y%m。

5、获取明年的年份:date -d next-year +%Y。

扩展资料

linux的系统时间在shell里是可以直接调用系统变量的如:

获取今天时期:`date +%Y%m%d` 或 `date +%F` 或 $(date +%y%m%d)

命令输出结果如下:

[root@centi-C sh]# date +%Y%m%d

20120727

[root@centi-C sh]# date +%F

2012-07-27

[root@centi-C sh]# date +%y%m%d

120727

参考资料来源:百度百科 - linux

百度百科 - SHELL语言

以上就是关于linux命令输出到屏幕的同时保存到文件全部的内容,包括:linux命令输出到屏幕的同时保存到文件、我用perl linux 执行管道命令,获取不到输出。、linux下如何将,控制台输出的所有内容,全部输出到一个文本文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10134244.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存