Hi! I found a bug in bash, I've checked versions 4.1 (centos 6.7), 4.2 (centos 7.2), and 4.3.30 (from the ftp site). The bug is that if you do a double parenthesis math thing with the wrong syntax, the script runs the function during what I assume is syntax checking. Demonstration script is attached.
-------------- Script --------------
#!/bin/bash
function neverrunme
{
avg=0
avg=(($avg+6))
echo -n "This function was never called. Bash version:"
/bin/bash --version | head -1
}
echo "Welcome to this demonstration."
-------------- Output --------------
[dm5284@juphub ~]$ ./test-file.sh
./test-file.sh: line 7: syntax error near unexpected token `('
./test-file.sh: line 7: ` avg=(($avg+6))'
This function was never called. Bash version:GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu)
./test-file.sh: line 10: syntax error near unexpected token `}'
./test-file.sh: line 10: `}'