相关疑难解决方法(0)

在 bash 脚本中抑制 stderr 消息

考虑以下(有点傻)脚本名称“test1.sh”:

#/bin/bash
#
sleep 10 &
echo sleep pid = $!
pkill sleep
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我不仅得到了 echo 的输出,还得到了 bash 在 stderr 上报告睡眠死亡的报告:

$ ./test1.sh
sleep pid = 3551
./test1.sh: line 5:  3551 Terminated              sleep 10
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我想抑制打印输出到 stderr。我知道我可以在命令行上完成,如下所示:

$ ./test1.sh 2> /dev/null
Run Code Online (Sandbox Code Playgroud)

......但有没有办法从抑制其的脚本?(我知道我可以将它包装在第二个脚本中并让包装器重定向它,但一定有更简单的东西......)

bash shell-script stderr

64
推荐指数
2
解决办法
13万
查看次数

`Segmentation fault` 消息是否在 STDERR 下?

我运行了一个可执行文件 bash

./code > log
Run Code Online (Sandbox Code Playgroud)

它在终端上偶尔显示错误消息,而所有 printf 语句都进入日志文件。我像下面一样重新运行它

./code >& log
Run Code Online (Sandbox Code Playgroud)

现在,偶尔的错误消息也会进入日志。但是如果出现分段错误,它仍然显示在终端上。为什么?如何使消息Segmentation fault (core dumped)进入日志文件?


用户 $ bash --version

GNU bash,版本 4.2.24(1)-release (i686-pc-linux-gnu)

bash io-redirection stderr

21
推荐指数
2
解决办法
1万
查看次数

标签 统计

bash ×2

stderr ×2

io-redirection ×1

shell-script ×1