我使用脚本来处理两件事,捕获标准输出/错误并返回值。我正在使用流程替换:
logger.sh
exec > >(
cat
echo $?
) 2>&1
test.sh
. ./logger.sh
ls abc
因为我没有名为abc的文件,所以我希望看到这个回显值1
(来自echo $?
)返回代码。我读到这将永远不会与进程替换。这可以转换为命名管道吗?这有用吗?
运行如下:
bash ./test.sh
答案 0 :(得分:0)
尝试这样做:
#!/bin/bash
trap 'echo "DEBUG[$?]" | tee /tmp/log' ERR
xxxx # a non existent command
如果您已经有trap
,则可以执行此操作:
#!/bin/bash
trap 'echo "DEBUG[$?]" | tee /tmp/log; do_something_else' ERR 0 1 2 3 15
xxxx # a non existent command