Bonjour.
Je récupère le contenu de la variable reponse_commande_mysql à partir de la commande mysql suivante:
Cette réponse sql est sur plusieurs lignes. Quand je l'affiche avec echo (ou echo -e) elle s'affiche correctement (sur plusieurs ligne). Cependant quand j'essaye d'extraire la ligne qui correspond au motif recherché, cela ne marche pas car elle est vue comme une seule ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part reponse_commande_mysql=`mysql -h $host_slave -u $mysql_user -p$passwd_Mysql_user -e "$commande_sql_show_slave_status"`
D'ailleurs quand je sauvegarde le contenu de cette variable dans un fichier, elle est sur une seule ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part etat_synchro_Last_Errno=`echo $reponse_commande_mysql | grep "Last_Errno" | tr -s ' ' | cut -d' ' -f 3`
Savez vous comment faire pour avoir cette variable sur le bon format SQL (plusieurs lignes) pour que je puisse extraire la (les) ligne(s) correspondant au(x) motif(s) recherché(s) ?
Une des astuces est d'ajouter le grep directement après la commande MySQL.
Cette astuce fonctionne, par contre elle m'intéresse moins car, dans la suite de mon script, j'ai d'autres grep à faire sur la réponse MySQL. Ce qui revient à dire lancer la commande sql à chaque grep.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ligne_error=`mysql -h $host_slave -u $mysql_user -p$passwd_Mysql_user -e "$commande_sql_show_slave_status" | grep "Last_Errno" | tr -s ' ' | cut -d' ' -f 3`
Cordialement.
Partager