bash:替换.用\.在变量中

Sri*_*har 1 regex bash sed environment-variables

以下是我的问题

RELEASE_BRANCH=5.2.2

echo $RELEASE_BRANCH | sed 's/\./\\./g'
5\.2\.2

RELEASE=`echo $RELEASE_BRANCH|sed 's/\./\\./g'`

echo $RELEASE
5.2.2
Run Code Online (Sandbox Code Playgroud)

我期待的是什么

echo $RELEASE
5\.2\.2
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

jay*_*ngh 5

不推荐使用反向标记.您应该使用命令替换.

#!/bin/bash

RELEASE_BRANCH=5.2.2
RELEASE=$(echo $RELEASE_BRANCH|sed 's/\./\\./g')

echo "$RELEASE"
Run Code Online (Sandbox Code Playgroud)

注意:请阅读从重要差异(子弹1)联系了解更多详情.