1

我有 2 个脚本。第一个脚本中的一行是

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

第二脚本有很多计算和变量。现在在某些时候我需要使用我回显到输出文件的所有内容

".....
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 回答