用 bash 删除变量中的下划线

用 bash 删除变量中的下划线

如何删除 bash 变量中存储的字符串中的所有下划线?

myVar我目前有一个包含字符串的变量foo1234_。然而,下划线的位置可以在其他任何地方。

我想删除下划线,并尝试过myVar="${myVar//_}",但得到Bad substitution输出。我究竟做错了什么?

答案1

使用参数扩展的替换类型:

underscored=A_B_C
echo "${underscored//_}"

//替换所有出现的情况;如果替换为空字符串,则可以省略最后的/.

答案2

这个简单的变量重新分配就可以解决问题:

myVar=${myVar//_/}

输出:

# myVar="hello_world__1"
# echo $myVar
hello_world__1
# myVar=${myVar//_/}
# echo $myVar
helloworld1

相关内容