我有一个像${REPOSITORY}/company/api:${API_VERSION}
这样的字符串。 $REPOSITORY
和$API_VERSION
是shell变量。
$ echo ${DATA_API_VERSION}
latest
$ echo ${REPOSITORY}
com.company.repo
我想获取显示这些变量值的内插字符串,并将其分配给另一个变量。
这就是我得到的:
$ echo "$image"
${REPOSITORY}/company/api:${API_VERSION}
我想要这个:
com.company.repo/company/api:latest
答案 0 :(得分:1)
您可以使用sed
搜索和替换两个变量。
#!/bin/bash
DATA_API_VERSION="latest"
REPOSITORY="com.company.repo"
image='${REPOSITORY}/company/api:${DATA_API_VERSION}'
sed -e "
s/\${REPOSITORY}/$REPOSITORY/g
s/\${DATA_API_VERSION}/$DATA_API_VERSION/g
" <<< "$image"