Bash 我应该使用只读标志吗?
昨天我发现Bash提供了一种方法,可以使用readonly关键字将变量标记为只读:Bash 我应该使用只读标志吗?,bash,Bash,昨天我发现Bash提供了一种方法,可以使用readonly关键字将变量标记为只读: readonly hello="hello" hello="world" # error message, Bash refuses to reassign the variable 这似乎是一个很好的特性,但是,我从未见过在任何Bash脚本中使用它。有什么理由不广泛使用这个吗?它实际上是可移植的吗?readonly对于bash设置的一些变量很有用,例如$UID-非只读值,如$LOGNAME和$USER很容易被
readonly hello="hello"
hello="world" # error message, Bash refuses to reassign the variable
这似乎是一个很好的特性,但是,我从未见过在任何Bash脚本中使用它。有什么理由不广泛使用这个吗?它实际上是可移植的吗?
readonly
对于bash设置的一些变量很有用,例如$UID
-非只读值,如$LOGNAME
和$USER
很容易被用户更改。如果您发现
readonly
很有用,请使用它!没有多少人使用“只读”,但请不要因此而烦恼。缺点-与其他变量属性一样,readonly
属性不会与导出的变量一起传递,除非子进程是另一个bash。readonly的一个用途是将其应用于函数。这并没有得到广泛的应用,但它解决了(错误地)具有两个同名函数的支持问题,这在使用存储在脚本外部的函数时可能是一个问题。
ksh还支持
只读(作为别名)。无法进一步修改'readonly'变量的值。它就像java中的“final”变量一样简单 OP并没有问它是做什么的,但问使用它是否明智。