`
jak47
  • 浏览: 74237 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

shell里面用tee写log时return code问题

阅读更多

shell里面,常出现程序执行结果既要往终端输出,又要往log文件输出的情况,这时候一般都使用tee。

例如:

#!/bin/sh

command | tee -a out.txt

ST=$?

 

但是现在变量ST里设置的返回值是tee命令的返回值,而不是command的返回值, 所以出现即使command执行结果出错,可变量ST的值仍是正常0的情况。

 

解决办法是使用环境变量PIPESTATUS, 这个数组型变量里面存放用"|" 隔开的各个命令的执行结果。

上例是想取缔一个命令的执行结果,所以代码应该如下

#!/bin/sh

command | tee -a out.txt

ST=${PIPESTATUS[0]}

 

分享到:
评论

相关推荐

    shell cat read tee

    本文将详细讲解"shell cat read tee"相关的知识点,包括Linux下的正则表达式、命令的执行顺序、Shell的输入输出以及重定向。 首先,让我们了解一下正则表达式(Regular Expression)。正则表达式是一种模式匹配工具...

    SHELL日志功能(log4sh)

    **SHELL日志功能——log4sh详解** 在IT运维和系统管理中,日志记录是不可或缺的一部分。它能够帮助我们追踪系统行为、诊断错误、优化性能以及满足合规性要求。`log4sh`,一个专为Shell脚本设计的日志模块,提供了...

    shell 脚本抓取android logcat和kernel log,以及删除旧的log

    通过这样的shell脚本,你可以方便地自动化收集和管理Android设备的日志信息,这对于开发者来说是非常有用的,特别是在进行问题排查和性能分析时。同时,通过属性控制,可以根据不同的需求灵活调整日志的抓取和保留...

    Hive错误之 Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask错误分析_xiaohu21的博客-CSDN博客.mht

    Hive错误之 Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask错误分析_xiaohu21的博客-CSDN博客.mht

    Microsoft.WindowsAPICodePack和SHell的DLL

    《Microsoft.WindowsAPICodePack与Shell.DLL:深入探索Windows API接口》 在.NET框架的开发环境中,有时候我们需要调用Windows操作系统底层的功能,比如管理文件、控制桌面图标、操作任务栏等,这时就离不开对...

    Microsoft.WindowsAPICodePack.Shell.dll

    Microsoft.WindowsAPICodePack.Shell.dll

    linux与unix shell编程指南Code代码

    chap21.zip:这部分可能关注的是Shell脚本中的错误处理和调试技巧,如何捕获并处理脚本运行时可能出现的问题,以及如何调试脚本来找出和修复错误。 chap26.zip:可能涉及到了Shell脚本的输入/输出控制,包括标准...

    输出执行操作和打印日志的shell脚本实例

    cat /mnt/log_function.sh #!/bin/bash #log function ####log_correct函数打印正确的输出到日志文件 function log_correct () { DATE=`date “+%Y-%m-%d %H:%M:%S”` ####显示打印日志的时间...log_error打印shell脚本

    shell 压缩文件夹下以.log结尾的文件

    shell编码 压缩以.log结尾的文件

    BIOS shell 下面刷 log

    在IT领域,BIOS(基本输入输出...总之,理解如何在BIOS Shell下刷log是一项重要的服务器管理技能,它可以帮助管理员快速定位和解决问题,提高系统的稳定性和可用性。熟悉这些命令和流程,可以极大地提高IT运维效率。

    Log4j2、Fastjson、Log4j的BurpSuite插件亲测有效

    Log4j、Log4j2和Fastjson的安全性问题在过去曾引起广泛关注,例如Log4j2的CVE-2021-44228(也被称为Log4Shell漏洞),这是一个远程代码执行漏洞,影响了许多使用Log4j2的系统。这个插件可能就是为了检测和利用这些...

    解决Unity不能调用shell脚本传递参数的问题

    ### 解决Unity不能调用shell脚本传递参数的问题 在Unity开发过程中,有时我们需要与操作系统进行交互,例如执行shell脚本来处理一些特定的任务。但在实际操作中,可能会遇到Unity无法正确调用shell脚本并传递参数的...

    shell脚本读写sd卡的案例

    shell脚本一个读写sd卡的案例,这个例子可以帮助出学者进步了解shell编程

    Visual basic Shell Programming source code

    Visual Basic Shell编程是一种在Visual Basic环境中使用Shell函数来执行操作系统命令的技术。这个源代码集合可能包含了一系列示例和实用程序,展示了如何通过VB代码与Windows系统进行交互,比如运行外部程序、管理...

    若依框架使用的log4j2.16.0,修复log4j漏洞log4j2下载最新log4j2.16.0下载

    Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中轻松地记录各种级别的日志信息,如DEBUG、INFO、WARN、ERROR等。在2021年底,一个重大的安全漏洞(CVE-2021-44228)被发现在Log4j2的早期版本中,...

    Microsoft.WindowsAPICodePack.Shell

    Microsoft.WindowsAPICodePack.Shell

    自动抓log脚本

    很好用的一键抓log工具,方便开发过程中调试。只需要添加下adb的环境变量,就可以在终端中直接执行脚本抓取log,该脚本可以选择不带参数,带一个参数,带二个参数。不带参数log保存在脚本指定的执行路径。带一个参数...

    用shell写守护进程

    ### 用Shell编写守护进程详解 #### 知识点概览 1. **守护进程(Daemon)的概念** 2. **Shell脚本基础** 3. **Shell脚本中的进程管理** 4. **守护进程的设计与实现** 5. **错误处理与日志记录** #### 守护进程概念 ...

    Nginx日志自动归档备份shell脚本log.sh

    Nginx日志自动归档备份shell脚本log

    B shell与 C shell的区别

    B shell与 C shell的区别 B shell和C shell都是Linux操作系统中的shell类型,它们之间存在一些关键的区别。 首先,让我们从B shell开始。B shell,全称为Bourne shell,是UNIX最初使用的shell。它在每种UNIX上都...

Global site tag (gtag.js) - Google Analytics