bug-bash
[Top][All Lists]
Advanced

[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.

Attachment: foo.sh
Description: Bourne shell script


reply via email to

[Prev in Thread] Current Thread [Next in Thread]