On Tue, Apr 19, 2016 at 3:52 AM, David Maas <david.m...@gmail.com> 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))`.

Reply via email to