将日志输出重定向到另一个终端

时间:2013-03-29 10:15:59

标签: java linux shell io-redirection gnome-terminal

我有以下脚本文件,它执行Java主类并在终端上打印一些日志数据。我想重定向任何打印此程序到另一个终端(例如/ dev / pts / 1,但这对我不起作用)。怎么做?

#!/bin/sh

# Usage: ./zipfs_mount.sh file.zip /mount/point

. ./build.conf

LD_LIBRARY_PATH=./jni:$FUSE_HOME/lib $JDK_HOME/bin/java \
   -classpath ./build:./lib/commons-logging-1.0.4.jar \
   -Dorg.apache.commons.logging.Log=fuse.logging.FuseLog \
   -Dfuse.logging.level=DEBUG \
   Main -f -s $2 $1 > /dev/pts/1

1 个答案:

答案 0 :(得分:0)

假设程序将其日志写入stdout而不是stderr并且/dev/pts/1是另一个终端的正确设备,那么您所编写的内容应该有效。您可以使用以下内容对此进行测试:

echo Hello > /dev/pts/1

这应该使Hello出现在另一个终端窗口中。如果没有,请使用tty命令检查终端使用的设备。

如果你的程序登录到stderr,你也可以重定向它:

program >/dev/pts/1 2>&1     # send stderr to the same place as stdout