gpt4 book ai didi

linux - 在运行使用 exec 和 tee 将 stdout 输出发送到终端和文件的脚本后,shell 提示似乎不会重新出现

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:57 26 4
gpt4 key购买 nike

我有一个 shell 脚本,它将所有输出写入日志文件和终端,这部分工作正常,但如果我执行脚本只有当我按下 enter 时才会出现新的 shell 提示符。为什么会这样?我该如何解决?

#!/bin/bash

exec > >(tee logfile)
echo "output"

最佳答案

首先,当我测试这个时,总是一个新的shell提示,只是有时字符串output在它之后,所以提示不是'最后。你是不是恰好忽略了它?如果是这样,似乎存在一个 shell 在后台完成 tee 之前打印提示的竞赛。

不幸的是,这不能通过 waittee 的 shell 中修复,参见 this question在 unix.stackexchange 上。除了脆弱的解决方法,我看到解决这个问题的最简单方法是将整个脚本放在一个列表中:

{
your-code-here
} | tee logfile

关于linux - 在运行使用 exec 和 tee 将 stdout 输出发送到终端和文件的脚本后,shell 提示似乎不会重新出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21329251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com