捕获源日志脚本中的返回值

  • 本文关键字:返回值 脚本 日志 bash
  • 更新时间 :
  • 英文 :


我编写了一个脚本来处理两件事,捕获标准的out/err和返回值。我正在使用过程替换:

logger.sh

exec > >(
 cat
 echo $?
) 2>&1

test.sh

. ./logger.sh
ls abc

因为我没有一个名为abc的文件,所以我希望看到它为返回代码回显值1(来自echo $?)。我读到这将永远不会与过程替代工作。可以将其转换为命名管道吗?这能行吗?

执行如下命令:

bash ./test.sh

试着这样做:

#!/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

最新更新