如何在bash中用变量替换回显字符串?

时间:2019-09-16 19:36:10

标签: bash

我有一个像${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

1 个答案:

答案 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"