Ou escape ou coloque em uma classe de caracteres, algo ao longo destas linhas:
grep '\['
grep '[[]'
grep -e "${user//\[/\\[}"
A sintaxe ${var//c/d}
= > na variável de shell $var
, substituímos todos os caracteres c
por d
. Agora, no seu caso, o c
é [
, mas acontece que [
é especial nessa sintaxe (ele faz globbing) e, portanto, precisamos escapar dele prefixando-o com uma barra invertida, ou seja, \[
.
Agora chegando à peça de substituição, o que precisamos é de \[
. Mas, novamente, tanto \
como [
são especiais nessa sintaxe de ${var//...}
de substituição de parâmetro e, portanto, ambos precisam ser, sim, você adivinhou certo, com barra invertida
levando à expressão: \\[
: "${var//\[/\\[}"
HTH