script query from ejecutar desde consola commands comandos comando mysql bash unix terminal special-characters

query - mysql shell commands



Cómo ejecutar el comando mysql en bash? (2)

El siguiente código funciona en la línea de comando

mysql --user=''myusername'' --password=''mypassword'' --database=''mydatabase'' --execute=''DROP DATABASE myusername; CREATE DATABASE mydatabase;''

Sin embargo, no funciona en el archivo bash en la ejecución

#!/bin/bash user=myusername password=mypassword database=mydatabase mysql --user=''$user'' --password=''$password'' --database=''$database'' --execute=''DROP DATABASE $user; CREATE DATABASE $database;''

Recibo el siguiente error:

ERROR 1045 (28000): Acceso denegado para el usuario ''$ user'' @ ''localhost'' (usando la contraseña: YES)

¿Cómo hacer que el archivo bash se ejecute como la línea de comando?


Éste trabajó, comillas dobles cuando $ user y $ password están fuera de comillas simples. Comillas simples cuando está dentro de una sola declaración de cotización.

mysql --user="$user" --password="$password" --database="$user" --execute=''DROP DATABASE ''$user''; CREATE DATABASE ''$user'';''


Use comillas dobles mientras usa variables BASH.

mysql --user="$user" --password="$password" --database="$database" --execute="DROP DATABASE $user; CREATE DATABASE $database;"

BASH no expande variables en comillas simples.