0

我有以下脚本文件,它执行 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
4

1 回答 1

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
于 2013-03-29T11:24:14.727 回答