我想为所有用户设置一个环境变量,/etc/profile
用户无法通过该变量覆盖或取消设置。我非常确定这是可能的,但我无法找到set
和/或export
shell 内置函数的相关文档。如果确实可行,该怎么做?
答案1
我相信你正在寻找readonly
。
readonly FOO='bar'
它们无法改变,也无法取消设置。从Bash 手册:
readonly [-aAf] [-p] [name[=value]] …
将每个名称标记为只读。这些名称的值不能通过后续赋值更改。如果
-f
提供了选项,则每个名称都引用一个 shell 函数。选项-a
表示每个名称都引用一个索引数组变量;选项-A
表示每个名称都引用一个关联数组变量。如果同时提供了两个选项,则-A
优先使用。如果没有给出名称参数,或者
-p
提供了选项,则将打印所有只读名称的列表。其他选项可用于将输出限制为只读名称集的子集。选项
-p
使输出以可重用为输入的格式显示。如果变量名后跟=value
,则变量的值设置为value
。返回状态为零,除非提供了无效的选项,其中一个名称参数不是有效的 shell 变量或函数名称,或者选项-f
提供的名称不是 shell 函数。