加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 重定向输出在使用tee时挂起

发布时间:2020-12-14 00:31:23 所属栏目:Linux 来源:网络整理
导读:我想在bash脚本中提供一个可选的日志记录参数,并希望使用exec从头开始管道.但是,打开tee进程导致脚本挂起,我相信因为stdout没有关闭: # Output to a log file,if setif [[ $OPT_LOG ]]; then exec (tee -a $OPT_LOG)fi 我试图结束: exec - 但它仍然挂起 –
我想在bash脚本中提供一个可选的日志记录参数,并希望使用exec从头开始管道.但是,打开tee进程导致脚本挂起,我相信因为stdout没有关闭:

# Output to a log file,if set
if [[ $OPT_LOG ]]; then
    exec > >(tee -a $OPT_LOG)
fi

我试图结束:

exec >&-

但它仍然挂起 – 是否有另一种正确关闭tee的方法,以便脚本在执行结束时正确退出?

解决方法

看起来,出于某种原因,使用tee会停止显示提示符($PS1),因为shell脚本尚未退出.作为一种解决方法,我通常在打电话后使用短暂的睡眠.

#!/bin/bash

exec > >(tee -a mylog)
sleep .1
# my code

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读