How to get a fall-through behavior in case statements in bash v3?
Either upgrade your bash (homebrew) or you'll have to recode it using a series of if statements:

case "$OSTYPE" in linux-gnu*) ;;&amp; linux*) echo $OSTYPE; ;; esac
case "$OSTYPE" in linux-gnu*) ;&amp; linux*) echo $OSTYPE; ;; esac


would be

# first case
if [[ $OSTYPE == linux-gnu* ]]; then
    : # nothing in this branch
fi 
if [[ $OSTYPE == linux* ]]; then
    echo $OSTYPE
fi

# second case
function print_ostype { echo $OSTYPE; }
if [[ $OSTYPE == linux-gnu* ]]; then
    # nothing in this branch
    # include the next branch
    print_ostype
elif [[ $OSTYPE == linux* ]]; then
    print_ostype
fi


I used a function in the 2nd case to reduce code duplication, in case there's multiple statements.