【发布时间】:2013-01-31 19:43:30
【问题描述】:
我正在运行一个名为 upgrade.sh 的脚本
并且 upgrade.sh 调用一个名为 roll.sh 的脚本
roll.sh >> logfile.text
但是 roll.sh 有一些问题和提示,并且重定向会阻止这些输出显示在屏幕上。我无法编辑 roll.sh。
我也试过`results=$(roll.sh)
即便如此,输出也没有出现在屏幕上
【问题讨论】:
我正在运行一个名为 upgrade.sh 的脚本
并且 upgrade.sh 调用一个名为 roll.sh 的脚本
roll.sh >> logfile.text
但是 roll.sh 有一些问题和提示,并且重定向会阻止这些输出显示在屏幕上。我无法编辑 roll.sh。
我也试过`results=$(roll.sh)
即便如此,输出也没有出现在屏幕上
【问题讨论】:
使用tee,它是专门为此目的而创建的:将标准输入转发到屏幕和一个或多个文件。如果您不想覆盖它,请务必使用-a 选项附加到logfile.text。
roll.sh | tee -a logfile.text
【讨论】:
roll.sh 2>&1 | tee -a logfile.txt 来捕获错误输出
你想要tee:
TEE(1) User Commands TEE(1)
NAME
tee - read from standard input and write to standard output and files
【讨论】:
处理这种情况的常用方法是让脚本将其提示写入 stderr 而不是 stdout。
【讨论】:
roll.sh