Bash 的 'declare' 的未记录的“-c”选项?

Undocumented '-c' option for Bash's 'declare'?

我在玩 Bash 变量并错误地将 -c 选项(对于 const)用于 declare 而不是正确的 -r 选项创建一个 readonly 变量。令我惊讶的是,该变量保留了 -c 属性并将我分配的任何值的首字母大写。

此行为未在 declare 的用法中列出,无论是在 declare --help 输出中还是在 Bash 的信息页面上。它似乎与 ksh 的 typeset 不兼容,尽管 -u-l 选项兼容。

这是一个众所周知的未记录的功能吗?是否普遍可用?

declare -c-l-u 似乎已在 bash 4.0(在 4.0-rc1 中引入)中一起添加,只要 --enable-casemod-attributes 配置标志未禁用(默认情况下启用)。有针对它们的测试(在 tests/casemod.tests 中)。为什么 -c 从未被记录在案是个谜。