4

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

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

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

4

1 回答 1

5

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

于 2020-11-09T03:25:06.127 回答