相关疑难解决方法(0)

使用 exec 重定向所有后续命令的 stderr

我有一个 bash 文件,我需要将所有输出重定向到一个文件、调试日志以及终端。我需要将 stdout 和 stderr 都重定向到调试并记录脚本中的所有命令。

我不想为2>&1 | tee -a $DEBUG文件中的每个命令添加。我可以忍受| tee -a $DEBUG

我记得有一种方法可以用类似exec 2>&1.

目前我正在使用以下内容:

#!/bin/bash
DEBUGLOG=/tmp/debug
exec 2>&1
somecommand | tee -a $DEBUGLOG
somecommand2 | tee -a $DEBUGLOG
somecommand3 | tee -a $DEBUGLOG
Run Code Online (Sandbox Code Playgroud)

但它不起作用。有没有人有解决方案/可以解释原因?

bash io-redirection

53
推荐指数
2
解决办法
4万
查看次数

将脚本的所有输出捕获到文件中(从脚本本身)

我有一个 bash 脚本,它调用各种命令并打印一些输出(来自被调用的命令本身,例如git pull,以及脚本本身生成的信息性消息,例如Operation took XX minutes.

我想整个输出捕获到文件,从脚本本身:基本上我试图避免需要调用./myscript.sh | tee file.txt非相关,在这里的原因。

基本上我想做这样的事情:

startCapture

git pull

echo "Text"

other-command

endCapture
Run Code Online (Sandbox Code Playgroud)

我还要求在脚本运行时将输出打印在我的 shell 上。

最终目标是:

  1. ./myscript.sh无需额外的 shell 结构即可运行
  2. 像我现在一样查看终端上的输出
  3. 在磁盘上获取包含整个输出的文件

这甚至可能吗?

bash string files output

11
推荐指数
2
解决办法
5万
查看次数

标签 统计

bash ×2

files ×1

io-redirection ×1

output ×1

string ×1