linux - 在 Bash 中结合局部变量和属性文件中的变量为变量分配多个值
问题描述
我想从配置属性中分配一个局部变量的值和变量值。
例如:我想获得输出$FILE_NAME
作为从变量和字符串PADPCD.BCL.ADP6(0)
中$FILE_NAME
获取值的位置,这些变量和字符串在配置属性中生成变量。$SENDER_BPID
_PROD_FILE_NAME
如果我保留FILE_NAME=${ADP6_PROD_FILE_NAME}
其具有静态值 ( ADP6
) 但我想使用来自变量的值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小提琴。
推荐阅读
- python - 使用 any() 函数在列表中查找值的索引,该值也在字符串内部
- format - 尝试使用 f-string 格式化和对齐表格中的数字
- javascript - 使用 Node.js 和 MySQL 进行分页
- python - DataFrame 中的混合时间戳在转换为 int64 时会导致错误
- node.js - 如何在猫鼬中保存对象数组?
- github - 为github配置十一数据文件夹
- r - 使用 Dbplyr 时将日期转换为年-季度格式
- python - FastAPI NameError:未定义名称“请求”
- python - 错误:“打开 'gruesome.flac' 时出错:无法识别格式”
- javascript - FullCalendar - 在自定义视图中对多个事件源进行日期排序