Johannes Sixt <j.sixt@xxxxxxxxxxxxx> writes: > Tarmigan Casebolt schrieb: >> REQUEST_METHOD="GET" some_shell_function > >> I can't tell from my reading of the POSIX spec whether my usage was >> wrong or if dash is wrong, > > According to POSIX, variables set as shown above for shell functions are > not exported and retain their value after the function returns. I actually looked for this yesterday, but didn't find a relevant definition. But "2.9.5 Function Definition Command" [*1*] seems to address the issue: "When a function is executed, it shall have the syntax-error and variable-assignment properties described for special built-in utilities...". And "2.14 Special Built-in Utilities" section [*2*] says "2. Variable assignments specified with special built-in utilities remain in effect after the built-in completes...". Taking both together, it seems that the assignment should be in effect after the function returns. Does my reading match yours, or do you have more definitive descriptions you can point at in POSIX.1, so that the log message can be improved to help people avoid this issue in the future? Yesterday, I saw rebase--interactive has a few codepaths where "output" shell function was used with the single-shot export; perhaps they need to also be fixed. [References] *1* http://www.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_05 *2* http://www.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_14 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html