2014-01-10 75 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