1

私は2つのスクリプトを持っています。最初のスクリプトの行の 1 つは

"...
./second_script >> $outputfile
..."

2 番目のスクリプトには、多くの計算と変数があります。ある時点で、出力ファイルにエコーしたすべてを使用する必要があります

".....
echo $var1
echo $var2
.....
echo $var3
echo What I have echoed | script3
..."

私がエコーしたこと - その $var1 $var2 $var3

どうすればいいですか?

大きなコードなので、行ごとにそのようなことを行うことはできません

echo $var
echo $var >> tmp

私はそれを行うこともできません.2000 $var($varは実際には変数ではなく、「grep ......」のようなものです)

echo $var1 $var2 | script3

どういうわけか、エコーしたものへのメモリ/バッファにアクセスする必要があります。

4

2 に答える 2

0

次のようなことを試してください:

{ echo $var1
  echo $var2
  echo $var3
  ...
} | script3
于 2013-08-01T12:51:43.590 に答える
0

これをスクリプトの先頭に追加します。

exec > >( tee tmp )

標準出力に書き込むものはすべて、ファイル「tmp」にも追加されます。


を使用し/bin/shて、プロセスをシミュレートする必要があります。これが正しいという保証はありません:

# Create a named pipe to act as a buffer, and set up a background job
# that continuously duplicates whatever is written to it to both
# a regular file and standard output
mkfifo buffer
( tail -f buffer | tee tmp ) &

# Now, redirect standard output to the named pipe
exec > buffer
于 2013-08-01T15:35:01.187 に答える