有没有办法确定纯函数?

时间:2013-08-09 11:47:02

标签: bash

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

我可以实现吗?

2 个答案:

答案 0 :(得分:7)

你做不到。但是,您可以使用declare -r只读取全局变量,例如:

declare -r cheese='nice'

如果您尝试修改$cheese

cheese='bad'

您将收到错误消息:

bash: cheese: readonly variable

您可以使用它来阻止函数更改变量,强制它们在需要使用变量时制作本地副本。

答案 1 :(得分:0)

在BASH和Kornshell中,您可以使用typedef来定义一个在函数中严格局部的变量。我相信BASH有一个名为typedef的{​​{1}}命令的别名,它可以做同样的事情。

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