$ a="hello world"
$ echo ${a// /_}
hello_world
Menurut bash(1):
${parameter/pattern/string}
Substitusi pola. Pola diperluas untuk menghasilkan pola seperti pada perluasan nama jalur. Parameter diperluas dan pola yang paling cocok dengan nilainya diganti dengan string. Jika pola dimulai dengan /, semua pola yang cocok diganti
dengan tali. Biasanya hanya pertandingan pertama yang diganti. Jika pola dimulai dengan #, itu harus cocok di awal nilai parameter yang diperluas. Jika pola dimulai dengan %, pola tersebut harus cocok dengan akhir dari nilai parameter yang diperluas. Jika string null, pola yang cocok akan dihapus dan pola / berikut dapat dihilangkan. Jika parameter adalah @ atau *, operasi substitusi diterapkan ke setiap parameter posisi secara bergantian, dan perluasan adalah hasil dari daftar. Jika parameter adalah variabel larik yang disubskrip dengan @ atau *, operasi substitusi diterapkan ke setiap anggota larik secara bergantian, dan perluasannya adalah daftar yang dihasilkan.
Anda dapat mencoba yang berikut ini:
str="${str// /_}"