In Bash, it is possible to define functions that look like assignment
words using the function keyword:

    function a=2 { printf hi\\n ;}

When `declare -f' is used to output all the function definitions, bash
will not output that function definition with the "function" keyword,
generating invalid code:

    $ bash -c 'function a=2 { printf hi\\n ;}; declare -f'
    a=2 () 
    { 
        printf hi\\n
    }
    $ bash -c 'function a=2 { printf hi\\n ;}; declare -f' | bash -v
    a=2 () 
    bash: line 1: syntax error near unexpected token `('
    bash: line 1: `a=2 () '

Bash should either accept `a=2 () { printf hi\\n ;}' as a valid
definition like it accepts `function a=2 { printf hi\\n ;}' as valid, or
make `declare -f' output declarations that use the "function" keyword,
at least when necessary.

 emanuele6

Reply via email to