bash / shell如何访问内存/缓冲区以使用我之前回复的内容

时间:2013-08-01 12:32:39

标签: bash sh

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

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

第二个脚本有很多计算和变量。现在,在某些时候,我需要使用我回应的所有内容 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

我需要以某种方式获取对内存/缓冲区中的内容的访问权限。

2 个答案:

答案 0 :(得分:0)

尝试这样的事情:

{ echo $var1
  echo $var2
  echo $var3
  ...
} | script3

答案 1 :(得分: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