linux - 将 STDerr 和 STDout 放入 bash 脚本内的日志文件中

标签 linux bash shell stdout stderr

我想知道如果他们更改脚本中的变量之一,是否可以获取我编写的脚本输出的所有内容以转到日志文件。例如,在脚本中可以设置变量 createLog=true 来启用日志记录。

我知道我可以./myscript.sh 2>&1 | tee sabs.log

但我希望能够简单地运行 ./myscript.sh

并将整个脚本记录在一个文件中,如果 var 设置为 true,则输出到控制台。

我是否必须更改脚本中的每个命令才能完成此操作,或者是否有一个我可以在脚本开头执行的命令,该命令将输出到两者。

如果您需要更多详细信息,请告诉我。

谢谢!

最佳答案

不带参数的

exec 允许您重定向当前脚本的其余部分。

exec >log 2>&1

您无法在重定向中tee,但可以通过后台作业显示该文件。

tail -f log &

关于linux - 将 STDerr 和 STDout 放入 bash 脚本内的日志文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23596696/

相关文章:

shell - 从shell脚本中的每一行中删除字符

android - 如何使用带有 WSL (bash) 的 Android Studio 作为你的 shell 终端?

linux - 使用 UNIX BASH 将文件复制到其他虚拟机

c - 关闭后如何重新绑定(bind)本地套接字?

linux - 字符串比较不正常

linux - awk 要求合并两个文件

linux - 使用 `chroot` : Why do I get error from running `sudo chroot/bin/bash` ?

linux - ARM 上的 SIGSEGV si_trapno

Linux: proc/net/sockstat tcp mem 越来越大

linux - 删除带空格文件的 Shell 脚本