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

/dev/pts/1プログラムがそのログを stderr ではなく stdout に書き込み、それが他の端末の正しいデバイスであると仮定すると、あなたが書いたものはうまくいくはずです。これは、次のような方法でテストできます。

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 に答える