1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| #!/usr/bin/env bash # # #
# 初始化参数 function do_update() { # 转义空格 var=`echo $2 |sed 's/[ ]/\\\\ /g'` echo export $1=${var} eval export $1=${var} } # para : name, default, shell_input function update_para() { echo echo "updata_para: $1 $2 $3" # 命令输入 if [ -n "$3" ]; then echo "set by input: $1 : $3" do_update $1 $3 return fi # 环境变量 env_var="${!1}" if [ -n "${env_var}" ]; then echo "set by env: $1 : ${env_var}" return fi # 默认值 echo "set by default: $1 : $2" do_update $1 "$2" }
# eg: # para1: 如果第一个参数有输入, 就使用输入的, 如果环境变量中有一个名为para1的变量, 就是用环境变量中的, 否则 使用 默认值 "default_value" update_para para1 "default_value" $1
echo echo # 使用变量从环境变量中取 echo para1 is ${para1}
|