用bash中的字符替换字符串中的点

ano*_*non 3 bash

我有一个字符串1.1.1.1.1,我想用_字符替换所有点.

我写了以下程序:

#!/bin/bash

var="1.1.1.1.1"
new2=${var/./_}
echo $new2
Run Code Online (Sandbox Code Playgroud)

但它只是用_字符串替换第一个点,结果是: 1_1.1.1.1

我怎么能用所有点替换_

谢谢.

Soc*_*owi 10

你非常接近.要替换所有匹配项,请使用${var//find/replace}:

#!/bin/bash
var="1.1.1.1.1"
new2="${var//./_}"
echo "$new2"       # prints 1_1_1_1_1
Run Code Online (Sandbox Code Playgroud)

表单的bash内置函数${var...}称为参数替换.你可以在这里找到关于他们的一切.