linux - 将一个命令的输出重定向到与其余脚本不同的文件

标签 linux bash redirect

我有一个 bash 脚本,我在其中使用以下命令将每个命令的 stdout/stderr 定向到一个文件:

today=`/bin/date '+%Y_%m_%d__%H_%M_%S'`
exec 2> "/home/pi/stream_logs/$today.$RANDOM.txt"
exec 1>&2

[command 1
command 2
command 3
command 4
.... (many more commands)]

我想将命令 2 的 stdout/stderr 重定向到一个不同的文件,同时将所有其他命令的 stdout/stderr 保留到/home/pi/stream_logs/$today.$RANDOM.txt。

我怎样才能覆盖并重定向此脚本中一个命令的输出到一个单独的文件?

最佳答案

你可以简单地这样做:

...
command 1
command 2 >path_of_secondary_output_file
command 3
...

每个命令都可以单独重定向。未重定向时,默认连接到调用上下文的 stdout 和 stderr(这就是 exec 对您的命令有影响的原因),但这不会阻止重定向单个命令。

关于linux - 将一个命令的输出重定向到与其余脚本不同的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43138126/

相关文章:

c - GDB 为数组值返回<optimized out>

linux - 用于复制目录中的所有文件并附加 filenameCopy 的 Bash 脚本

redirect - 阻止curl在302重定向上发送授权 header

php - Google 对索引重定向 URL 的 react 是什么?

linux - 列出所有 POD

C 编程 -> 链表和结构

linux - 唤醒时执行 bash 脚本

bash - ECS Docker 容器获取运行 cron 的环境变量

bash - 停止 bash 回显命令文本

bash - 如何在命令中使用文件并将输出重定向到同一文件而不截断它?