背景
经常写脚本进行业务处理,或者日志处理,环境变量,包括测试环境,预发布环境或者正式环境,需要设置不同的参数,复制粘贴,也麻烦,特意写了个备忘。
抽取公用变量单独存放
举个例子: 不同环境的API的入口不一样,需要单独处理,取名 set_env.sh,内容如下
#!/usr/bin/env bash
#测试环境
test_api_prefix="http://api.test.com:80"
#预发布环境
pre_api_prefix="http://api.pre.com:1030"
#正式环境,s1
pro_api_prefix="http://api.pro.com:1040"
#正式环境,s2
s2_pro_api_prefix="http://api.pro.com:1050"
#脚本所属环境,这里仅仅是默认值,具体值需要调用者配置
script_env=test
function get_api_prefix()
{
if [[ "$script_env" == "test" ]] ; then
echo "${test_api_prefix}"
return 0
fi
if [[ "$script_env" == "pre" ]] ; then
echo "${s2_pro_api_prefix}"
return 0
fi
if [[ $1 -gt 20000000 ]] ; then
echo "${s2_pro_api_prefix}"
return 0
fi
echo "${pro_api_prefix}"
return 0
}
测试脚本 test.sh
#!/usr/bin/env bash
source set_env.sh
#环境
script_env=product
api_prefix=$(get_api_prefix 20001011)
echo $api_prefix
执行 ./test.sh,打印 http://api.pro.com:1050 至此,在不同环境中,很容易拿到请求地址,其他的参数配置都是类似处理。