On Tue, Apr 19, 2016 at 3:52 AM, David Maas wrote:
> 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
> #Should be avg=((avg+6))
>
> 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: `}'
It didn't run the function. The function-syntax-checking scope simply
ended in `avg=(($avg+6))`.