此问题来自 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是空的。
我的问题是,有没有办法将标准输出重定向到变量和文件同时?
答案 0 :(得分:4)
你可以写:
var="$(printf '%5d.%-5d\n' $RANDOM ... | tee FILE)"
使用the tee
command来“分割”标准输出,以便它可以同时进入FILE
和新的标准输出,可以使用command substitution在变量中捕获。< / p>