2014-09-20 49 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" 
相关问题