读书人

Shell脚本最好都能自定义自各儿所需的

发布时间: 2013-10-01 12:15:56 作者: rapoo

Shell脚本最好都能自定义自己所需的环境变量,无论什么情况

这样做的好处:

1、很清楚的查到自己脚本使用到的环境变量对应的值;

2、不因为任务外部情况的变化而导致shell脚本无法执行;

?

现实中,常常有开发同学写的shell脚本的环境变量依赖于系统设置的值(譬如设置在/etc/profile),殊不知这种情况是有特定机制的,那就是:需要执行脚本的是当前用户,因为环境变量设置在/etc/profile,意味着当用户登录系统时这些环境变量才生效,这里的前提是登录。如果执行这个脚本的不是当前用户,脚本依赖的环境变量就是无效的。

?

具体场景 写道用A用户登录,echo $JAVA_HOME,会显示出值/usr/xxx/java
当A用户执行一个脚本xxx.sh,这个脚本直接使用了$JAVA_HOME,执行命令:sudo -u admin ./xxx.sh,$JAVA_HOME并不是预期的/usr/xxx/java
原因:用admin用户执行xxx.sh,登录用户是A

?

读书人网 >行业软件

热点推荐