如何删除 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