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