Bash的“声明”的未记录的“ -c”选项?

问题描述

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

-c输出中或Bash的信息页面上,declare的使用中未列出此行为。尽管declare --helptypeset选项兼容,但它似乎与ksh的-u不兼容。

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

解决方法

只要在declare -c configure标志中,

-l-u--enable-casemod-attributes似乎在bash 4.0(4.0-rc1中引入)中一起添加未禁用(默认情况下处于启用状态)。有针对它们的测试(在tests/casemod.tests中)。 -c从未被记录的原因是一个谜。