是否可以readonly
在 Korn Shell 中取消设置或更改变量?我使用的是 AIX 5。
答案1
从来没听说过。至少,明显的方法行不通:您不能unset
使用只读变量或删除只读属性typeset +r
。这适用于我见过的所有 ksh 变体以及 bash,但显然有 ksh 版本,例如在 AIX 4.3 上允许typeset +r
(zsh 也允许)。
从技术上讲,您可以从外部执行此操作:使用调试器连接到 ksh 进程,并翻转内存中 ksh 进程存储变量只读信息的位。因此只读变量并不是绝对的安全功能。
如果您需要在启动命令之前将变量设置为不同的值,请通过以下方式完成env
:
readonly foo='some value'
env foo='other value' mycommand
或者,使变量在受限范围内(在函数中)为只读。