使用bash脚本将命令的输出参数重定向到变量

时间:2017-08-22 18:47:42

标签: bash shell

你好

我开发了一个程序,可以使用标志将不同类型的数据输出到不同的文件,例如:

$ ./program -csv file.csv -log file.log -out out.txt -result result.txt ...

在这种情况下, csv 输出应保存在文件file.csv上,日志保存到file.log,依此类推。我想要一种方法将输出直接保存到 bash 变量,以便稍后在脚本上使用它。例如:

$ ./program -csv $(write to csv_var) \
    -log $(write to log_var) \
    -out $(write to out_var) \
    -result $(write to result_var) \
    ...

因此,当我调用echo ${csv_var}时,我希望看到程序的 csv 输出。同样应该发生在log_varout_varresult_var等处。我该怎样做?

我考虑过为每个变量手动创建一个临时文件,将输出保存到文件并将其读回,但我正在寻找更清洁的东西,如上例所示(想象一下程序运行的很多实例)并行,一些文件可能会覆盖其他文件)。此外,重要的是变量数据仅在脚本运行时存在,在上面的“解决方案”中,如果我终止脚本,临时文件/文件夹将继续存在。

提前致谢

0 个答案:

没有答案