[英]Assign multiple values to variable with combination of local variable and variable from property file in Bash
我想从配置属性中分配一个局部变量的值和变量值。
例如:我想为$FILE_NAME
获取 output 作为PADPCD.BCL.ADP6(0)
,其中$FILE_NAME
从变量$SENDER_BPID
和字符串_PROD_FILE_NAME
中获取值,它们在配置属性中生成变量。
如果我保留具有 static 值( ADP6
)的FILE_NAME=${ADP6_PROD_FILE_NAME}
,但我想使用变量SENDER_BPID
中的值。
FILE_NAME=${$SENDER_BPID"_PROD_FILE_NAME"}
不起作用,并给出错误${$SENDER_BPID"_PROD_FILE_NAME"}: bad substitution
。
你能给我一些指导吗? 谢谢你。
测试.sh
#Load configuration
. /Config.properties
SENDER_BPID=`pwd |awk -F/ '{print $(NF)}'`
echo "Sender BPID is $SENDER_BPID"
#SENDER_BPID value is ADP6
FILE_NAME=${ADP6_PROD_FILE_NAME}
echo "Input prod file name is: $FILE_NAME"
配置属性
ADP6_PROD_FILE_NAME='PADPCD.BCL.ADP6(0)'
在我的主机上:
$ . ./Config.properties # define variable "ADP6_PROD_FILE_NAME"
$ echo "${ADP6_PROD_FILE_NAME}"
PADPCD.BCL.ADP6(0)
$ SENDER_BPID='ADP6' # result of 'pwd|awk'
$ FILE_NAME="${SENDER_BPID}_PROD_FILE_NAME" # build name of variable
$ echo "${FILE_NAME}" # display name of variable
ADP6_PROD_FILE_NAME
$ echo "${!FILE_NAME}" # display value of variable "ADP6_PROD_FILE_NAME"
PADPCD.BCL.ADP6(0)
以下也有效(并且是我推送到小提琴网站的内容):
$ ADP6_PROD_FILE_NAME='PADPCD.BCL.ADP6(0)' # from the Config.properties file
$ echo "${ADP6_PROD_FILE_NAME}"
PADPCD.BCL.ADP6(0)
$ SENDER_BPID='ADP6' # result of 'pwd|awk'
$ FILE_NAME="${SENDER_BPID}_PROD_FILE_NAME" # build name of variable
$ echo "${FILE_NAME}" # display name of variable
ADP6_PROD_FILE_NAME
$ echo "${!FILE_NAME}" # display value of variable "ADP6_PROD_FILE_NAME"
PADPCD.BCL.ADP6(0)
这是上面的bash 小提琴。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.