You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

34 lines
960 B

#!/bin/bash
function on_exit {
code=${1:-0}
# exec 3>&1 1>&2 2>&3
# exec 1>&- 3>&- 2>&-
# exec 2> >(tee /dev/stderr)
trap - ERR TERM INT EXIT
# exec 2>&-
# exec 1> >(tee -ap /dev/stdout) 2>&- 3> >(tee -ap /dev/stderr)
# exec 2>&- 3>&-
# echo CLOSE OPEN PIPE suite
count=$(wc -c stderr | cut -d' ' -f1)
content=$(head -qc$count stderr)
>&4 echo "DETECTED0: [$content]"
>&4 echo ON_EXIT2 ${code}
}
set -TEue -o pipefail
trap 'on_exit $?' ERR TERM INT EXIT
# exec 2>stderr 3> >(tee -ap /dev/stderr)
[[ -f stderr ]] && rm stderr
# exec 1> >(tee -p /dev/stdout) 2> >(tee stderr | tee -p /dev/stderr) 3> >(tee -p /dev/stderr)
# exec 2> >(tee stderr | tee -p /dev/stderr) # 3> >(tee -p /dev/stderr)
# exec 3> >(tee stderr | tee -p /dev/stderr) 2>&3
# exec 3> >(tee stderr) 2>&3-
# exec 2> >(tee stderr)
exec 3>stderr 4>/dev/stderr
source ./useless.sh 2>&3
exec 3>&- 4>&-
>&2 cat stderr
trap - ERR TERM INT EXIT
echo --END1
>&2 echo --END2