如何使用tee和script命令捕获输出和文件错误
【YINGSOO提示】文章部分内容源于互联网收集整理,不代表YINGSOO观点!若有咨询“如何使用tee和script命令捕获输出和文件错误”等有关服务器、云主机租用、托管、配置、价格问题,请立即咨询YINGSOO客服,为您答疑解惑!
【主机测试】日本CN2服务器 | 韩国高防服务器 | 韩国站群服务器
【原创内容】如何选择优质的英国服务器?这几个方面得仔细考察
当您编写了一个脚本来处理Linux服务器上的一个重要任务时,如果您需要该脚本的输出日志,以便记录所发生的事情,或者对运行过程中可能没有发生的事情进行故障排除,会发生什么情况?如果脚本使用特定的服务,您总是可以查看这些特定的日志文件,但这有点麻烦。如果脚本失败,这些服务日志可能没有任何帮助。
您可以使用tee或script命令。tee命令从标准输出读取数据,并将数据写入标准输出或文件,而script命令生成终端会话的typescript并可以将数据输出到文件中。对于任何经常使用bash脚本的人来说,这些命令应该被认为是必备的工具。当脚本输出大量信息时尤其如此。
我想向您介绍tee和脚本命令,以便您能够更有效地排除故障并记录bash脚本。
您需要使用tee或script的惟一工具是Linux服务器。缺省情况下应该安装tee和script,因此不需要安装单个包。
一、如何使用tee命令
让我们编写始终令人愉快的“ Hello World” bash脚本。该脚本将仅包含以下内容:
#!/bin/bash
echo Hello World
将该文件命名为test,并使用以下命令为其赋予可执行权限:
chmod u+x test
如果使用命令./test执行该脚本,则应该看到与图A所示类似的输出 。
您可能会问自己一个问题,“为什么不直接将脚本的输出发送到文件?” 您可以使用以下命令执行此操作:
./test> test.log
由于所有内容都已转储到文件test.log中,您将看不到任何输出返回到终端。要实时查看输出并拥有输出的日志文件,可以使用tee命令,如下所示:
./test | tee test.log
您不仅会看到Hello World打印到标准输出(图B的终端),还将有包含相同输出的test.log文件。
二、如何使用script命令
下一个工具称为script。使用script,您将获得一个交互式会话,所有这些会话均被打印到标准输出并写入文件。要在我们的Hello World示例中使用脚本,命令应为:
script -c ./test test.log
该-c选项告诉script我们正在运行的命令。script命令的输出如图C所示。
使用tee和script命令输出到文件的区别在于脚本输出将为您提供更多信息,例如退出代码(图D)。
当您拥有更复杂的bash脚本时,您将看到该命令的更多输出。例如,假设您编写了一个bash脚本,要求输入文件名,并且该文件将被删除。该bash脚本可能如下所示:
#!/bin/bash
echo "Enter filename to remove"
read fn
rm -i $fn
使用脚本命令运行该文件时:
script -c ./test test.log
系统将要求您删除文件名(图E)。删除文件后,您可以查看test.log文件以查看整个会话。
当您有一个非常复杂的bash脚本时,您将看到更多(有用)的输出写入日志文件。
热门产品:美国服务器租用去首页参与活动!YINGSOO推出Phala挖矿服务器、Chia奇亚农场服务器、Swarm物理节点服务器、Swarm母鸡服务器、Swarm云节点服务器、国内矿机服务器海外托管、《Phala PHA挖矿资料大全》,《swarm bzz挖矿资料大全》,Swarm Bee节点租用请咨询YINGSOO客服!官网WWW.YINGSOO.com
版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。