最近总需要写一些shell脚本,扔到linux上执行,有的时候写的脚本比较多,而这些脚本都会用到一些公共的变量,比如路径的配置等等,如果每个脚本里都写上一遍,等到环境变了修改起来很麻烦,本人对shell的理解也在逐渐学习中,这里说一种目前我较常用的解决方案。
1.将变量统一写到一个文件中,如param.list ,格式有点像java中的properties ,采用名值对的形式,只不过value前要加上空格,如name=#value(因为看的不是很清楚,所以使用#代替空格,正式使用时将#替换为空格).
举例如下:
JAVA_PATH=#/usr/local/jdk6/bin
TOMCAT_HOME=#/usr/local/tomcat
2.在各个脚本文件中读取时使用如下命令
java_path=`awk '/JAVA_PATH=/{print $2}' param.list `
说明:使用awk命令,读取 param.list ,将包含“JAVA_PATH=”的行取出,并只取出该行的第二列内容(以空格分隔,所以name是第一列,value就是第二列),这里要注意 param.list 的路径问题。
这样一来,如果变量发生变化,只需要修改 param.list即可。