有这样的一个需求, 若干shell脚本会共同使用一些基本变量,比如日志目录变量,一般会把这些变量放在一个配置文件中,其他shell引用这些变量。
引用变量方法汇总如下:
1、 . conf_file
2、读取conf_file
代码如下:
方法1:(前公司)
#!/bin/bash
. /home/test/cfg/conf_file
echo $LOGDIR
方法2:(现公司)
#!/bin/bash
conf_file="/home/test/cfg/conf_file"
while read line
do
eval "$line"
done < $conf_file
echo $LOGDIR
conf_file内容如下:
LOGDIR=/home/test/log/
USER=test
HOST="192.168.1.1"
...
2个方法,第1个方法比较简单,容易理解;第2个方法,如果不熟悉eval命令的人,估计得耗些时间,我也是在别人离职后交接给我后出问题看脚本才知道这个方法。
在这里吐槽下,看别人写的脚本真痛苦,尤其是没有注释还比较混乱的。
个人的经验:
基本通用变量放在一个配置文件(日志目录,用户,密码等等)
基本的通用函数放在一个脚本中(记日志函数,连接主机或者读数据库等等)
然后在真正实现脚本中引用。