我需要自定义我的 shell 脚本。我的工作空间中有一些环境/属性文件,shell 脚本必须在安装期间根据环境选择相应的变量。
例如:如果属性文件中的变量定义如下:
com.prod.filename=PRODFILE
com.test.filename=TESTFILE
com.dev.filename=DEVFILE
当我根据环境安装任何项目或在运行时,它必须选择所需的正确文件。也就是说,如果环境是测试的,那么它必须选择 TESTFILE。
首先,您的属性文件都应该遵循相同的命名约定。
例如
myapp/properties/dev.properties
myapp/properties/qa.properties
myapp/properties/prod.properties
您的 shell 脚本应根据环境变量确定使用哪个属性文件,例如APP_ENV
,默认为dev
. 例如:
启动应用程序.sh:
#!/bin/bash
APP_ENV=${APP_ENV:-dev}
PROPERTIES_FILE=myapp/properties/${APP_ENV}.properties
# run the command using the properties file
echo "Using: ${PROPERTIES_FILE}"
mycommand ${PROPERTIES_FILE}
您可以通过更改APP_ENV
变量为不同的环境运行您的应用程序。例如,要运行prod
:
$ APP_ENV=prod startApp.sh
创建一个关联数组并将文件名与相应的环境名称相关联:
#!/bin/bash
declare -A filename
filename[prod]=PRODFILE
filename[test]=TESTFILE
filename[dev]=DEVFILE
environ=test
echo "${filename[$environ]}"
输出:
TESTFILE