将 Xterm 的输出重定向到日志文件

Jer*_* M. 2 bash centos xterm centos7

我一直无法找到这个问题的答案。我在 xterm 中启动了三个程序作为演示自动化脚本。我需要记录 xterm 窗口的结果。现在,我的脚本如下所示:

#!/bin/bash/sh

echo "NOTE - THIS PROCESS TAKES APPROXIMATELY 60 SECONDS TO RUN"

    cd ~/myProject/ProgramOne
    xterm -e ProgramOne progone.config 2>&1 /tmp/logs/p1.txt &

    cd ~/myProject/ProgramTwo
    xterm -e ProgramOne progtwo.config 2>&1 /tmp/logs/p2.txt &

    cd ~/myProject/ProgramThree
    xterm -e ProgramOne progthree.config 2>&1 /tmp/logs/p3.txt &


# allow the scripts to collect data
sleep 60

# kill the xterm sessions from running since this is just a demonstration
pkill -9 xterm

echo "******************************************"
echo "START PROGRAMS SCRIPT COMPLETE"
echo "******************************************"   
Run Code Online (Sandbox Code Playgroud)

我已经证实~/myProject/ProgramOne~/myProject/ProgramTwo~/myProject/ProgramThree存在,就像/tmp/logs/*

文件被创建,它们只是没有任何内容,并且不包含 xterm 窗口的输出,我可以看到弹出窗口包含数百行信息。

Jer*_* M. 5

命令中的以下更改有效:

xterm -e ProgramOne progone.config 2>&1 /tmp/logs/p1.txt &
Run Code Online (Sandbox Code Playgroud)

xterm -e 'ProgramOne progone.config 2>&1 | tee /tmp/logs/p1.txt' &
Run Code Online (Sandbox Code Playgroud)