2014-09-20 79 views
1

存在一個命令foo,該命令需要兩個參數,這兩個參數是文件名並在stdout上打印一些內容。如何將變量作爲臨時文件傳遞給bash中的命令

我有兩個變量ab持有兩個字符串的Bash腳本。

我希望傳遞給foo兩個文件名,其中這些文件的內容是ab。然後,我想將stdout存儲爲一個新變量c

繼特設谷歌搜索,腳本將可能看起來像:

a=...; 
b=...; 
c=`foo <($a) <($b)`; 

什麼應該樣子呢?

+0

根據如何'了'和'B'都在第一時間設置,可以更換'<($ A)'和'<(CMD-是集-A)'並完全跳過這些變量。 – chepner 2014-09-21 16:44:11

回答

2
a=... 
b=... 
c=$(foo <(echo "$a") <(echo "$b")) 

echo "$c" 
+0

不幸的是,這不起作用,其中'$ a'或'$ b'中有換行符。 – jameshfisher 2014-09-20 20:53:46

+0

如果你打印出來,請確保你引用'「$ c」'。 'echo「$ c」'不''echo $ c'。 – 2014-09-20 20:58:53

0

對不起,我不能評論,所以只是重寫約翰的答案。 嘗試使用echo -e

a=... 
b=... 
c=$(foo <(echo -e "$a") <(echo -e "$b")) 

echo -e "$c" 
相關問題