
我可以OUTPUT=$(grunt test)
这样做,这会将输出放入OUTPUT
但它不再显示在屏幕上。我还需要查看输出,所以我不能只是等待然后echo $OUTPUT
。
如何捕获程序的输出和仍然同时进入屏幕吗?
答案1
你可以尝试这样的事情:
exec 9>&1
OUTPUT=$(grunt test | tee /dev/fd/9)
exec 9>&-
它将当前的 stdout 复制到文件描述符 9,用于将 的输出tee
复制grunt
到该文件描述符,然后关闭临时文件描述符。