2014-01-10 41 views
0

好吧,我有一个很奇怪的问题,很多人可能会问为什么。Bash将文件读入脚本

我需要将文件读入脚本并立即输出回新文件。我想更合适,即时通讯流入脚本并输出到文件。

来自我们开发团队的一个java进程将会调用我的脚本(script.sh),并且它将读取“文件”和一些变量。

我知道你可以做到以下几点:

./script.sh var1 var2 var3 

,这将允许您访问通过$ 1 $ 2和$ 3都

这是伟大的,而这些变量,他们将如何通过一些事情给脚本,但他们也需要读取一个XML文件(但它并不是一个真正的文件,它只是来自java进程的输出)。我认为这是如何工作的。

./script var1 var2 var3 < file 

基本上,我的脚本需要做的第一件事就是输出的“文件”说file.xml,那么脚本会去了解它的快乐的方式,并开始与变量工作和做其他的东西它需要做的。

我认为该文件被传递到脚本的标准输入,所以我尝试做这样的事情:

0> file.xml 

/dev/stdin > file.xml 

但没有任何工程。我想我只是犯了很大的概念错误。有人可以帮忙吗?

谢谢!

+0

请您详细说明一下吗? – Atomiklan

回答

2

使用cat

cat > file.xml 

不带任何参数,猫从标准输入读取和写入到stdout。

至于你的概念错误,你不认为文件描述符只是整数,并且不能自己做任何工作(如移动数据)。你需要一个可以读取并写入另一个的进程。

移动数据的另一个熟悉的过程是cp,你确实可以做cp /dev/stdin file.xml,但这是非惯用的并且有一些缺陷。

+0

+1'猫'的一个非无用的使用。 – tripleee