Bonjour,
j'aimerai redirigeai les erreurs de mes commandes dans un shell.
Exemple qui marche :
Résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 if mysql -pMotDePasse Base --exec="select nom from utilisateur;" 2>/tmp/error.txt; then echo ok else echo ko cat /tmp/error.txt fi if mysql -pMotDePasse Base --exec="select nom2 from utilisateur;" 2>/tmp/error.txt; then echo ok else echo ko cat /tmp/error.txt fi
+--------------+
| nom |
+--------------+
| USER1 |
| USER2 |
+--------------+
ok
ko
ERROR 1054 (42S22) at line 1: Unknown column 'nom2' in 'field list'
Mais pour cet exemple ça ne marche pas :
Résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if mysql -pdamien ged < /t/tutu 2>/tmp/error.txt; then echo ok else echo ko cat /tmp/error.txt fi
./testScript.sh: line 92: /t/tutu: Aucun fichier ou dossier de ce type
ko
ERROR 1054 (42S22) at line 1: Unknown column 'nom2' in 'field list'
L'erreur est directement écrite dans la console et pas redirigé vers mon fichier d'erreur. Du coup c'est l'erreur précédente qui est affichée.
Je pense que le problème vient du fait que j'insère des données avec '<' dans la bdd et qu'ensuite je veux rediriger une erreur potentielle dans mon fichier texte avec '>' sur une même ligne.
Savez vous comment contourner ce soucis ?
Par avance merci,
Damien.
Partager