[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
simple function causes BASH to exit when -e in effect
From: |
Kevin Layer |
Subject: |
simple function causes BASH to exit when -e in effect |
Date: |
Fri, 22 Dec 2017 10:39:15 -0800 |
The bug happens to me on
GNU bash, version 4.1.2(2)-release (x86_64-redhat-linux-gnu)
and
GNU bash, version 4.4.12(1)-release (x86_64-apple-darwin16.4.0)
The script is attached, but the function in question is this:
function debug1 {
[ "$debug" ] && echo "$(date "+%Y-%m-%d %H:%M:%S"): $@"
}
If it is defined like this then no problem exists:
function debug1 {
if [ "$debug" ]; then
echo "$(date "+%Y-%m-%d %H:%M:%S"): $@"
fi
}
nor if it is defined like this:
function debug1 {
[ "$debug" ] && echo "$(date "+%Y-%m-%d %H:%M:%S"): $@"
:
}
When I run the script I see this output:
BEFORE test 2
AFTER test 2
BEFORE test 1
but I expected to see
BEFORE test 2
AFTER test 2
BEFORE test 1
AFTER test 1
It took me hours of work to distill this down from a very large and long
running script.
foo.sh is attached.
foo.sh
Description: Bourne shell script
- simple function causes BASH to exit when -e in effect,
Kevin Layer <=