【发布时间】:2019-10-07 21:15:10
【问题描述】:
我正在尝试在 bash 中设置 ERR 陷阱,并注意到一些奇怪的行为。如果退出代码为0,则当我运行此脚本时,Bash 似乎不会将我的echo 命令输出到控制台,但是,如果退出代码为非零,则输出文本。这是bash中的错误吗?或者对此有什么解释?
./testing.sh:
#!/bin/bash
set -eE
handleerror() {
echo "TEST"
exit 0
}
trap "handleerror" ERR
OUTPUT=$(mkdir test/test 2>&1)
如果我运行上面的脚本,它什么也不输出。如果我将exit 0 行更改为exit 1,我会看到以下内容:
> ./testing.sh
TEST
供参考:
> bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)
Copyright (C) 2007 Free Software Foundation, Inc.
【问题讨论】:
标签: bash