设置 bash 变量,使其无法取消设置

设置 bash 变量,使其无法取消设置

我想为所有用户设置一个环境变量,/etc/profile用户无法通过该变量覆盖或取消设置。我非常确定这是可能的,但我无法找到set和/或exportshell 内置函数的相关文档。如果确实可行,该怎么做?

答案1

我相信你正在寻找readonly

readonly FOO='bar'

它们无法改变,也无法取消设置。从Bash 手册

readonly [-aAf] [-p] [name[=value]] …

将每个名称标记为只读。这些名称的值不能通过后续赋值更改。如果-f提供了选项,则每个名称都引用一个 shell 函数。选项-a表示每个名称都引用一个索引数组变量;选项-A表示每个名称都引用一个关联数组变量。如果同时提供了两个选项,则-A优先使用。

如果没有给出名称参数,或者-p提供了选项,则将打印所有只读名称的列表。其他选项可用于将输出限制为只读名称集的子集。

选项-p使输出以可重用为输入的格式显示。如果变量名后跟=value,则变量的值设置为value。返回状态为零,除非提供了无效的选项,其中一个名称参数不是有效的 shell 变量或函数名称,或者选项-f提供的名称不是 shell 函数。

相关内容