O uso de aspas é para parar o shell interpretando certos caracteres de pontuação, como espaço (separador de parâmetro), >
(redirecionamento de saída), *
(curinga na máscara de arquivo), etc.
As aspas simples interrompem toda a interpretação do texto citado, enquanto as aspas duplas permitem a expansão $
(e algumas outras). O comando dentro de um script não é diferente daquele digitado para um prompt interativo.
O endereço IP não possui caracteres específicos do shell, nem root
, portanto, eles não precisam ser citados. Se a sua senha tiver caracteres específicos do shell, como um espaço, ela precisará ser citada e, como ela exige a expansão $
, ela precisará ter aspas duplas. O parâmetro -Bse
tem espaço e ;
, por isso precisa de cotação, mas também o fará, pois não há $
de expansão.
As variáveis que você está expandindo $sqlip
e $sqlpass
precisam ser definidas dentro da subshell que executa o script, então elas precisam ser definidas na subshell ou definidas como export
no shell de chamada.