如何将终端输出记录到文件但保持终端窗口处于活动状态以允许回答提示?

如何将终端输出记录到文件但保持终端窗口处于活动状态以允许回答提示?

我正在尝试运行一个大脚本,它会在整个过程中提示您回答问题。我想以详细模式运行它,这样会有大量的输出,我想捕获它。因此,我想以一种允许我回答问题并将输出发送到文件的方式运行它。

这能做到吗?

谢谢。

麦克风

答案1

在回答时,您通过文件描述符 0(即 STDIN)提供输入,而程序则在文件描述符 1(即 STDOUT)上显示输出。如您所见,这两个在不同的文件描述符上工作,并且操作一个文件描述符不会妨碍另一个文件描述符的操作。

请注意,还有文件描述符 2,即 STDERR,通常用于显示错误消息。

在这种情况下,请按如下方式运行脚本:

./myscript.sh >~/script.out

现在您可以通过 STDIN 输入脚本问题的答案,程序的输出将保存在 中~/script.out

您还可以将错误保存在另一个文件中:

./myscript.sh >~/script.out 2>~/script.err

STDOUT 将保存在 中~/script.out,STDERR 将保存在 中~/script.err

您可以将输出和错误都保存在同一个文件中:

./myscript.sh >~/script.all 2>&1

现在~/script.all将包含来自的输出和错误消息(如果有)myscript.sh

相关内容