2

我需要自定义我的 shell 脚本。我的工作空间中有一些环境/属性文件,shell 脚本必须在安装期间根据环境选择相应的变量。

例如:如果属性文件中的变量定义如下:

com.prod.filename=PRODFILE
com.test.filename=TESTFILE
com.dev.filename=DEVFILE

当我根据环境安装任何项目或在运行时,它必须选择所需的正确文件。也就是说,如果环境是测试的,那么它必须选择 TESTFILE。

4

2 回答 2

4

首先,您的属性文件都应该遵循相同的命名约定。

例如

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
于 2013-07-17T11:19:20.897 回答
2

创建一个关联数组并将文件名与相应的环境名称相关联:

#!/bin/bash

declare -A filename
filename[prod]=PRODFILE
filename[test]=TESTFILE
filename[dev]=DEVFILE

environ=test
echo "${filename[$environ]}"

输出:

TESTFILE
于 2013-07-17T10:55:08.197 回答