linux - 强制为 shell 脚本中的每个命令运行 `tee`?

标签 linux bash logging shell tee

我想要一个脚本,其中所有命令都tee到一个日志文件。

现在我正在运行脚本中的每个命令:

<command> | tee -a $LOGFILE

有没有办法强制 shell 脚本中的每个命令都通过管道传输到 tee

我不能强制用户在运行脚本 时添加适当的teeing,并希望确保即使调用用户也能正确记录不添加自己的日志调用。

最佳答案

您可以在脚本中做一个包装器:

#!/bin/bash
{
echo 'hello'
some_more_commands
echo 'goodbye'
} | tee -a /path/to/logfile

编辑:

另一种方式:

#!/bin/bash
exec > >(tee -a /path/to/logfile)
echo 'hello'
some_more_commands
echo 'goodbye'

关于linux - 强制为 shell 脚本中的每个命令运行 `tee`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4037170/

相关文章:

linux - Spark-2.4.0 docker 构建失败

linux - ONELINER 打印系统组及其标识符,适用于标识符以 '1' 开头的所有组

linux - 无法删除设备/dev/loop0

bash - 如何在制作 bash 脚本时区分 Linux 和 Windows 10 bash

python - ROS 记录器禁用 Python 记录器

python - 如何自定义 Tornado 的访问日志

mysql - 如何将变量从 shell 脚本传递到 mysql 脚本

bash - 如何在 bash 中设置两级重定向?

linux - 是否可以对文件夹应用计数功能,然后在文件夹超出限制时删除文件?

logging - Glassfish 伐木