2014-09-26 54 views
4

在bash,你可以创建一个read-only variable如何制作“只读变量”?

declare -r somevar='bla' 

我试图找到在POSIX sh类似的东西,但接近的唯一的事情就是这句话在set documentation

[.. 。]只读变量不能被重置。

如何创建这样的只读变量?

+1

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_23 – jlliagre 2014-09-26 08:02:45

+1

嗯。我的Google-fu今天失败了。 – rubenvb 2014-09-26 08:03:50

回答

5

您可以使用readonly

$ var="hello" 
$ readonly var 
$ echo $var 
hello 
$ var="bye" 
sh: var: readonly variable 
+1

我发现[这也是](https://wiki.ubuntu.com/DashAsBinSh#declare_or_typeset),但无法在POSIX规范中找到它。因此我相信它也是一个延伸。我可以看到它虽然[不存在于某些shell](http://hyperpolyglot.org/unix-shells#variables)。 – rubenvb 2014-09-26 08:01:49

+1

好吧,@ jlliagre指向我的[spec](http://pubs.opengroup.org/onlinepubs/007904875/utilities/readonly.html),谷歌显然未能完成。我在哪里提交谷歌搜索错误报告? :- – rubenvb 2014-09-26 08:04:43

+0

哈哈一个解决方法是喝咖啡:)基于该链接,它存在于规范中。它足够吗?还是它仍然是一个扩展?我不清楚。 – fedorqui 2014-09-26 08:07:26