Como tomasz apontou , a maneira correta de especificar exatamente quais caracteres constituem o nome da variável é usar chaves , como ${devName}3 .
O Bash permite omitir as chaves como uma conveniência, mas ao fazê-lo, você perde a capacidade de ser totalmente explícito sobre qual variável deseja referenciar. A maneira como o bash resolve isso é pegando o nome de variável válido mais longo possível que inicia após o cifrão. Os nomes de variáveis começam com uma letra ou sublinhado e podem conter qualquer número de letras, números ou sublinhados, mas nenhum outro caractere. Portanto, no seu exemplo, $devName , bash começa com d e procura a execução mais longa dos caracteres de letra / número / sublinhado que pode encontrar, que é devName . É preciso que seja o nome da variável a ser usada. Da mesma forma, algo como $here-is-a-long-string-of-words usaria a variável chamada here ; seria como ${here}-is-a-long-string-of-words .
Depois disso, o bash verá . A contrabarra é uma forma de citar, no sentido de que faz com que o caractere seguinte seja interpretado normalmente, sem qualquer significado especial. Mas 3 não tem nenhum significado especial, então a contrabarra é redundante. Essa sequência acaba sendo equivalente a apenas 3 por si só.