Você perdeu a cotação na sua expressão sed .
Tente:
$ varA="ASD# 1"
$ echo "$(sed 's/#/\#/g' <<< "${varA}")"
ASD\# 1
Na programação bash, dada uma variável, digamos varA , que armazena uma string contendo o símbolo # . Vamos supor que varA contenha este valor: ASD# 1 , eu preciso acrescentar uma barra invertida \ na frente de # , então a saída pode ter isso: ASD\# 1 . O seguinte código é sobre lá para alcançar meu objetivo, apenas que a substituição de seqüência de caracteres não parece funcionar e eu não sou capaz de atribuir a saída do comando sed em outra variável. Qualquer visão sobre isso?
varA="ASD# 1"
echo $(sed s/\#/\#/g <<< ${varA})
Há sobrecarga para usar sed apenas para uma variável. Em bash você pode usar ${varA/\#/\\#} .
Tags sed shell-script quoting