Provavelmente não. Ou, pelo menos, será realmente complexo. O problema aqui é que foo= é interpretado pelo bash como uma tentativa de definir a variável foo para algo. Então, quando você clicar na aba , ela tenta completar os nomes dos arquivos no diretório atual. Na verdade, ele não está completando foo= , está iniciando um novo globo a partir do nada. Observe que são necessárias duas guias para concluir foo= .
Para ilustrar, você pode ver o mesmo comportamento, mesmo que não haja arquivos que comecem com foo= :
$ ls
bar baz
Digitar foo= e pressionar a tecla Tab resulta em:
$ foo= ## first tab does nothing
$ foo=
bar baz ## both file names are printed.
Eu duvido que haja alguma maneira de contornar isso, já que esta é uma função básica do shell e a principal maneira de definir variáveis.
Eu posso pensar em duas soluções alternativas. Ou escape do = :
$ ls foo\= ## hit tab
$ ls foo\=bar
Ou use aspas:
$ ls 'foo= ## hit tab
$ ls 'foo=bar' ## yes, the final quote is added by the shell.
Acionar a aba agora expandirá o nome do arquivo corretamente.