Bonjour.
Je récupère le contenu de la variable reponse_commande_mysql à partir de la commande mysql suivante:
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"`
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
etat_synchro_Last_Errno=`echo $reponse_commande_mysql | grep "Last_Errno" | tr -s ' ' | cut -d' ' -f 3`
D'ailleurs quand je sauvegarde le contenu de cette variable dans un fichier, elle est sur une seule ligne.
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.
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`
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.

Cordialement.