修改包含
的脚本A的好方法是什么 "typeset -r VAR=value"
使脚本可重复(同时保持声明)?
目前,有问题的脚本在登录时由用户的.profile点缀,然后再由用户从命令行运行的其他脚本点缀。
原样,脚本将在后续运行时出错,因为VAR已经是只读的。
uname -a: Linux demon 2.6.32-131.0.15.el6.x86_64 #1 SMP Tue May 10 15:42:40 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
问题更新:
如果您通过用户的.profile
脚本注释掉脚本A中的点,那么在登录脚本B时,脚本A中的点可以反复运行而没有任何问题。但是,如果您从命令行运行脚本A,则后续调用脚本B会出错。
是什么解释了这种行为?
.profile
在系统中最大的shell中运行,而脚本B在临时子shell中运行。 它是如何修复的?
答案 0 :(得分:0)
你可以这样做:
test -z "${VAR+set}" && typeset -r VAR=value