Hola buenas, estoy en un proyecto que tengo que conseguir datos de un csv con bash, con esos datos aplicarlos a sentencias sql para enviarlas a un servidor de MySQL, el problema es que cuando pongo la contraseña en la sentencia no me detecta bien las comillas, pero si la contraseña en el csv tiene comillas simples, la sentencia se ejecuta correctamente, pero esa no es la solución correcta, quiero que las comillas simples estén en la sentencia del bash. Nosé si me he explicado bien, aquí adjunto mi código con el fallo:
#!/bin/bash
while IFS='#'
read -r col1 col2
do
nombre=${col1}
echo $pass
#CREACIÓN BASE DE DATOS
echo "Creando base de datos bd_"$nombre
sudo mysql -u root -e "CREATE DATABASE bd_"$nombre
#CREACIÓN USUARIO
echo "Creando el usuario "$nombre
mysql -e "CREATE USER '$nombre'@'%'"
#ASIGNAR CONTRASEÑA AL USUARIO
mysql -e "ALTER USER '$nombre'@'%' IDENTIFIED BY '$pass'"
echo "ALTER USER '$nombre'@'%' IDENTIFIED BY '$pass'"
#ASIGNAR PRIVILEGIOS A USUARIO
mysql -e "GRANT ALL PRIVILEGES ON bd_$nombre.* TO '$nombre'@'%'"
#ACTUALIZAR USUARIO
mysql -e "FLUSH PRIVILEGES"
#FINAL BUCLE
done < csv.csv
(LAS TABULACIONES EN MI SCRIPT ESTAN BIEN, AQUI NOSE SI SE HAN INSERTADO BIEN) En la línea de ALTER USER tengo puesto un echo para ver como se ve la sentencia y se ve tal que asi: 'LTER USER 'lopez'@'%' IDENTIFIED BY 'lopezmoreno
Parece que coja la ultima comilla simple y la pone al principio cambiandola por la A de ALTER.
Llevo una semana con este problema y nose por que, he estado buscando por todos lados y nada.
Muchas gracias y un saludo.