Per sostiture caratteri si possono usare "sed" o "tr"

sed s/ /_/
tr ' ' '_'

Anche se non capisco bene come possa funzionare lo script che hai fatto.