如果函数试图更改全局变量,我需要能够定义函数来接收错误消息。
我可以实现吗?
答案 0 :(得分:7)
你做不到。但是,您可以使用declare -r
只读取全局变量,例如:
declare -r cheese='nice'
如果您尝试修改$cheese
:
cheese='bad'
您将收到错误消息:
bash: cheese: readonly variable
您可以使用它来阻止函数更改变量,强制它们在需要使用变量时制作本地副本。
答案 1 :(得分:0)
在BASH和Kornshell中,您可以使用typedef
来定义一个在函数中严格局部的变量。我相信BASH有一个名为typedef
的{{1}}命令的别名,它可以做同样的事情。
这将阻止您的函数定义全局变量。