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

関連情報