相关疑难解决方法(0)

100
推荐指数
2
解决办法
3万
查看次数

在屏幕上只显示标准错误,但将标准输出和标准错误写入文件

我如何使用 BASH 魔法来实现这一目标?
我只想在屏幕上看到 stderr 输出,
但我希望将 stdout 和 stderr 都写入文件。

澄清:我希望 stdout 和 stderr 最终出现在同一个文件中。按照它们发生的顺序。
不幸的是,下面的答案都没有做到这一点。

shell bash io-redirection

30
推荐指数
3
解决办法
4万
查看次数

如何在 bash 脚本中为任何输出添加前缀?

当脚本运行时,其中的命令可能会向 stdout/stderr 输出一些文本。Bash 本身也可能输出一些文本。

但是如果同时运行几个脚本,就很难确定错误来自哪里。

那么是否可以在脚本的所有输出中插入前缀?就像是:

#!/bin/bash
prefix 'PREFIX' &2
echo "wrong!" >&2
Run Code Online (Sandbox Code Playgroud)

然后:

$ ./script.sh
PREFIXwrong!
Run Code Online (Sandbox Code Playgroud)

bash

30
推荐指数
3
解决办法
2万
查看次数

将脚本 stderr 和 stdout 重定向到文件,但也将 stdout 保留到 tty?

在我的脚本中,我目前有:

exec > >(tee -a /tmp/history.log) 2>&1
Run Code Online (Sandbox Code Playgroud)

这会将所有命令的 stderr 和 stdout 写入日志文件和 tty。不幸的是,这使得 tty 非常嘈杂,所以我宁愿在终端上只有 stdout,而在文件中同时包含 stdout 和 stderr (按正确的顺序,因此打开文件两次进行追加将不起作用)。对于我的一生,我无法弄清楚tee /dev/tty让它工作所需的神奇 exec 调用(甚至使用 )。

io-redirection shell-script

6
推荐指数
1
解决办法
2789
查看次数

标签 统计

bash ×3

io-redirection ×2

shell ×2

coprocesses ×1

ksh ×1

shell-script ×1

zsh ×1