gpt4 book ai didi

linux - 如何使用 xterm 在另一个终端生成一个进程?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:11 24 4
gpt4 key购买 nike

在我的 bash 脚本中,我尝试使用以下命令在另一个终端窗口中运行一个进程:

xterm -e /home/mohit/a.out

现在我想使用 tee 命令重定向输出,如下所示:

xterm -e /home/mohit/a.out 2>&1 | tee logfile

但是我在logfile 中没有得到任何东西。任何线索,为什么会这样?

最佳答案

看起来 xterm 生成了一个新窗口并在该窗口中执行 -e。一旦该命令完成,它就会退出。

因为它是在一个新的 shell 中打开的,所以它的 stderr stdout 等附加到该窗口。

如果您想要打开该窗口并保持打开状态以查看日志文件,您需要引用您希望由 xterm 执行的所有内容,否则 bash 将解释重定向和管道本身。例如

xterm -e /home/mohit/a.out 2>&1 | tee logfile

将被 bash 翻译成:

使用xterm执行命令/home/mohit/a.out然后将 stderr 重定向到 stdout 并通过管道传输到 tee。

当 xterm 使用新的标准输出等生成新窗口时,tee 没有获得任何输入,因此日志文件中没有任何内容

尝试

xterm -e '/home/mohit/a.out 2>&1 | tee logfile'

这将强制 xterm 执行整个管道

关于linux - 如何使用 xterm 在另一个终端生成一个进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14380397/

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