为什么这个 Bash 字符串替换不起作用?

Hol*_*son 1 bash parameter-expansion

我试图在 bash 中进行字符串替换,以转义版本号中的点,最终传递给 grep。当我跑步时

echo ${3.9.1//./\\.}

预期输出是3\.9\.1. 我得到一个bad substitution错误。我不明白这怎么不正确。

Cyr*_*rus 8

将字符串放入变量中,然后您可以使用参数扩展

s="3.9.1"
echo "${s//./\\.}"
Run Code Online (Sandbox Code Playgroud)

输出:

3\.9\.1