Para substituir caracteres em uma variável no bash shell , você pode usar expansão de parâmetro
para substituir cada espaço por um caractere mais
$ var='some string with spaces'
$ echo "${var// /+}"
some+string++++with+spaces
ou para substituir sequências de espaços por um único sinal de adição (desde que você tenha habilitado a globalização estendida no shell)
$ echo "${var//+( )/+}"
some+string+with+spaces
Você pode atribuir a uma nova variável newvar="${var//+( )/+}"
ou reatribuir para alterar diretamente o valor da variável, ou seja,
$ var='some string with spaces'
$ echo "$var"
some string with spaces
$
$ var="${var//+( )/+}"
$ echo "$var"
some+string+with+spaces
Veja uma ilustração de seu uso no contexto descrito em sua pergunta atualizada:
Construa um mínimo ~/.bash_profile
if [ -r $HOME/.profile ]; then
. $HOME/.profile
fi
search() {
read -p 'Please enter a search term: ' searchterm
c="https://www.google.com/#q=${searchterm//+( )/+}"
echo "OPENING: $c"
}
Em seguida, inicie um novo shell de login e teste-o
$ bash -l
$ search
Please enter a search term: ask ubuntu
OPENING: https://www.google.com/#q=ask+ubuntu
$