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.