您现在的位置是:首页 > 产经 > 正文
如何使用tee和脚本命令捕获输出和文件错误
发布时间:2020-02-08 11:36:11来源:
当您编写了一个脚本来处理Linux服务器上的关键任务时,会发生什么,您需要该脚本的输出,这样您就可以记录发生了什么,或者排除在运行过程中可能没有发生的事情?如果脚本使用特定的服务,您可以始终查看这些特定的日志文件,但这有点麻烦。如果脚本失败,这些服务日志可能没有任何帮助。
您最好的选择是使用总是方便的T恤或脚本命令。该tee命令从标准输出读取并写入标准输出或文件,而脚本命令则制作终端会话的类型脚本,并可以输出到文件。对于那些做了大量的bash脚本的人来说,这些命令应该被认为是必备的工具。当您的脚本输出大量信息时,尤其如此。
我想向您介绍tee和脚本命令,这样您就可以更有效地排除故障并记录bash脚本。
请参阅:微软Word和Excel的免费替代品(Tech Republic下载)
唯一需要使用tee或脚本的是Linux服务器(或桌面)。默认情况下,Tee和脚本都应该安装,因此不需要安装单个包。
为了简单起见,让我们写一个永远令人愉快的“HelloWorld”bash脚本。该脚本只包括以下内容:
用命令命名该文件测试并赋予其可执行权限:
如果您使用命令执行该脚本。/测试,您应该看到类似于图A中显示的输出。
图A
一个工作的HelloWorld脚本。
你可能会问自己一个问题,“为什么我不直接把脚本的输出发送到一个文件中?”你可以通过命令这样做:
您将看到没有输出返回到终端,因为所有的东西都被转储到文件test.log中。若要实时查看输出,并拥有输出的日志文件,请使用Tee命令如下:
您不仅会看到HelloWorld打印到标准输出(终端-图B),还会有包含相同输出的test.log文件。
图B
发球命令在行动中。
下一个工具叫做脚本。使用脚本,您将得到一个交互式会话,所有这些会话都被打印成标准输出并写入文件。若要在HelloWorld示例中使用脚本,则命令为:
-c选项告诉脚本我们正在运行一个命令。脚本命令的输出如图C所示。
图C
剧本的输出。
带tee和脚本命令的文件的输出之间的区别在于脚本输出会给你更多的信息,比如退出代码(图D)。
图D
退出代码包含在脚本输出中。
当然,当你有一个更复杂的bash脚本时,你会看到更多的指令输出。例如,假设您编写了一个bash脚本,它需要输入一个文件名,并且所说的文件将被删除。bash的剧本可能是这样的:
使用脚本命令运行该文件时:
您将被要求删除文件名(图E)。一旦文件被删除,您就可以查看test.log文件以查看会话的全部内容。
图E
运行中稍微复杂一点的bash文件。
当您有一个非常复杂的bash脚本时,您会看到更多(和有用的)输出写入日志文件。
在这里,有两种方法可以将bash脚本的输出捕获到标准输出和文件。享受这个新级别的bash脚本故障排除和日志记录。
您不想错过我们关于Linux操作系统和开源应用程序的提示、教程和评论。星期二交货
标签:
猜你喜欢
- 今日消息 甘肃8月27日新增无症状感染者21例
- 今日消息 浙江8月27日新增本土阳性1例,为社区筛查发现
- 今日消息 新疆维吾尔自治区8月27日新增本土确诊4例、无症状57例
- 今日消息 北京文化:2022上半年净亏损收窄至2516万,营业成本同比减少98.32%
- 今日消息 海南8月27日新增本土确诊70例、无症状125例
- 今日消息 山西8月27日新增本土确诊病例9例、无症状感染者2例
- 今日消息 山东8月27日新增本土无症状感染者2例
- 今日消息 全球新能源汽车累计销量突破2000万辆
- 今日消息 中国运动员申加升获UTMB CCC组第四名,创个人历史最佳
- 今日消息 欧亚经济联盟成员国决定成立欧亚再保险公司
最新文章
- 今日消息 天津昨日全域核酸检测结果已出,共发现20例核酸阳性感染者
- 今日消息 甘肃8月27日新增无症状感染者21例
- 今日消息 美国外卖平台DoorDash发生数据泄露事件,部分客户和司机信息被读取
- 今日消息 山东德州新增本土无症状感染者4例
- 今日消息 陕西8月27日新增本土确诊13例、无症状感染者44例
- 今日消息 内蒙古8月27日新增本土确诊病例4例、无症状感染者3例
- 今日消息 捷克众议院批准芬兰和瑞典加入北约
- 今日消息 浙江8月27日新增本土阳性1例,为社区筛查发现
- 今日消息 俄罗斯将开始为匈牙利扩建核电站
- 今日消息 江西8月27日新增本土无症状感染者24例
- 今日消息 河南8月27日新增本土确诊2例、无症状52例
- 今日消息 广东8月27日新增本土确诊12例、无症状4例、无症状转确诊1例
- 今日消息 新疆维吾尔自治区8月27日新增本土确诊4例、无症状57例
- 今日消息 北京文化:2022上半年净亏损收窄至2516万,营业成本同比减少98.32%
- 今日消息 黑龙江8月27日新增本土确诊病例1例、无症状7例
- 今日消息 重庆8月27日新增本土确诊12例、无症状7例
- 今日消息 海南8月27日新增本土确诊70例、无症状125例
- 今日消息 北京8月27日新增2例本土确诊病例、1例本土无症状感染者
- 今日消息 山西8月27日新增本土确诊病例9例、无症状感染者2例
- 今日消息 内蒙古二连浩特新增阳性感染者5人,全域继续实行静默管理
- 今日消息 天津西青多地调整为高、中风险区,精武镇、李七庄街实施全域静态管理
- 今日消息 山东8月27日新增本土无症状感染者2例
- 今日消息 西藏日喀则8月27日新增本土新冠病毒感染者144例
- 今日消息 8月27日0-21时,新疆新增本土感染“4+34”