![用 bash 删除变量中的下划线](https://linux22.com/image/127509/%E7%94%A8%20bash%20%E5%88%A0%E9%99%A4%E5%8F%98%E9%87%8F%E4%B8%AD%E7%9A%84%E4%B8%8B%E5%88%92%E7%BA%BF.png)
如何删除 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