如何将标准输出同时重定向到变量和文件?

时间:2013-01-20 03:20:57

标签: bash io-redirection

此问题来自 Chris Bash编程 Chris Johnson 第2章练习2

使用$ RANDOM编写脚本,将以下输出写入文件和变量。以下数字仅用于显示格式;你的脚本应该产生不同的数字:

 1988.2365
13798.14178
10081.134
 3816.15098

这是我的解决方案:

printf -v var "%5d.%-5d\n" $RANDOM $RANDOM $RANDOM $RANDOM $RANDOM $RANDOM $RANDOM $RANDOM > FILE

似乎输出直接进入var,FILE是空的。

我的问题是,有没有办法将标准输出重定向到变量和文件同时

1 个答案:

答案 0 :(得分:4)

你可以写:

var="$(printf '%5d.%-5d\n' $RANDOM ... | tee FILE)"

使用the tee command来“分割”标准输出,以便它可以同时进入FILE和新的标准输出,可以使用command substitution在变量中捕获。< / p>