将所有内容回显并“错误”地读取到终端窗口?

将所有内容回显并“错误”地读取到终端窗口?

我继承了一个在 OSX 上运行的复杂 shell 脚本,该脚本在 crontab 上运行。在脚本中,我想定期读取终端窗口中的所有内容并将其写入另一个文件……有点像我以后可以查看的日志文件。

我试图捕获脚本中已 ECHO 的内容以及终端上显示的任何错误消息。(即 /Users/topher/program.sh:第 58 行:权限被拒绝)

这可能吗?什么命令可以从终端或程序输出读取?

谢谢!topher

答案1

如果您从 cron 运行的命令如下,则生成的所有输出都将写入logfile.log文件

/Users/topher/program.sh > logfile.log

上述命令将清空logfile.log文件并用脚本生成的输出填充它program.sh。以下命令将附加输出。

/Users/topher/program.sh >> logfile.log

答案2

用于tee输出到屏幕和文件。

./some/thing | tee thing.log

您可能想要重定向stderrstdout以将它们都转储到日志文件。

    ./some/thing 2>&1 | tee thing.log

答案3

我不知道 OS X 的终端应用程序,但有些终端(例如)xterm可以通过选项启动,该选项会将屏幕上显示的所有内容记录到文件中。另一种可能性是运行程序script,该程序会将所有字符捕获到终端并保存到文件中。

相关内容