Re: `declare -f' does not output the "function" keyword when required
On 12/3/22 6:05 AM, Emanuele Torre wrote: 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: Thanks for the report. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRUc...@case.eduhttp://tiswww.cwru.edu/~chet/
`declare -f' does not output the "function" keyword when required
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