存在一個命令foo
,該命令需要兩個參數,這兩個參數是文件名並在stdout上打印一些內容。如何將變量作爲臨時文件傳遞給bash中的命令
我有兩個變量a
和b
持有兩個字符串的Bash腳本。
我希望傳遞給foo
兩個文件名,其中這些文件的內容是a
和b
。然後,我想將stdout存儲爲一個新變量c
。
繼特設谷歌搜索,腳本將可能看起來像:
a=...;
b=...;
c=`foo <($a) <($b)`;
什麼應該樣子呢?
存在一個命令foo
,該命令需要兩個參數,這兩個參數是文件名並在stdout上打印一些內容。如何將變量作爲臨時文件傳遞給bash中的命令
我有兩個變量a
和b
持有兩個字符串的Bash腳本。
我希望傳遞給foo
兩個文件名,其中這些文件的內容是a
和b
。然後,我想將stdout存儲爲一個新變量c
。
繼特設谷歌搜索,腳本將可能看起來像:
a=...;
b=...;
c=`foo <($a) <($b)`;
什麼應該樣子呢?
a=...
b=...
c=$(foo <(echo "$a") <(echo "$b"))
echo "$c"
不幸的是,這不起作用,其中'$ a'或'$ b'中有換行符。 – jameshfisher 2014-09-20 20:53:46
如果你打印出來,請確保你引用'「$ c」'。 'echo「$ c」'不''echo $ c'。 – 2014-09-20 20:58:53
對不起,我不能評論,所以只是重寫約翰的答案。 嘗試使用echo -e
a=...
b=...
c=$(foo <(echo -e "$a") <(echo -e "$b"))
echo -e "$c"
根據如何'了'和'B'都在第一時間設置,可以更換'<($ A)'和'<(CMD-是集-A)'並完全跳過這些變量。 – chepner 2014-09-21 16:44:11