有时候,我们软件的配置文件依赖于部署机器的动态信息,比如机器主机名、IP地址等等。所以,配置文件不能hard code,而是将需要动态配置的内容写成placeholder,在安装过后,执行activate脚本来实例化这些placeholder。
下面是一个简单的替换placeholder的函数:
# Replace placeholder with given value
# $1 source file
# $2 target file
# $3 placeholder
# $4 value
# $n placeholder
# $n+1 value
replace()
{
source_file=$1
target_file=$2
replace_cmd="sed"
shift; shift
while (( "$#" )); do
replace_cmd="${replace_cmd} -e 's/$1/$2/'"
shift; shift
done
replace_cmd="${replace_cmd} ${source_file} > ${target_file}"
echo "Executing command /"$replace_cmd/"."
eval "$replace_cmd"
}