1

如果函数试图更改全局变量,我需要能够定义函数以接收错误消息。

我能做到这一点吗?

4

2 回答 2

8

你不能。但是,您可以使用 将全局变量设为只读declare -r,例如:

declare -r cheese='nice'

如果您然后尝试修改$cheese

cheese='bad'

你会得到一个错误:

bash: cheese: readonly variable

您可以使用它来防止函数更改变量,如果它们需要使用变量,则强制它们制作本地副本。

于 2013-08-09T12:05:04.257 回答
0

在 BASH 和 Kornshell 中,您都可以使用typedef在函数中定义严格本地化的变量。我相信 BASH 有一个名为的typedef命令的别名,local它做同样的事情。

这将阻止您的函数定义全局变量。

于 2013-08-09T14:07:22.273 回答