如果函数试图更改全局变量,我需要能够定义函数以接收错误消息。
我能做到这一点吗?
你不能。但是,您可以使用 将全局变量设为只读declare -r
,例如:
declare -r cheese='nice'
如果您然后尝试修改$cheese
:
cheese='bad'
你会得到一个错误:
bash: cheese: readonly variable
您可以使用它来防止函数更改变量,如果它们需要使用变量,则强制它们制作本地副本。
在 BASH 和 Kornshell 中,您都可以使用typedef
在函数中定义严格本地化的变量。我相信 BASH 有一个名为的typedef
命令的别名,local
它做同样的事情。
这将阻止您的函数定义全局变量。