Bonjour.
J'utilise une fonction dans pas mal de mes quelques scripts :
Je me suis récemment rendu compte que je n'avais pas la sortie standard.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #gestion d'erreurs et logs launch() { cmd=$1 purpose=$2 redirection=$3 echo "#$purpose" | tee -a $log_file if [ $redirection ] then #cas ou on a une redirection dans la commande #on ne peut pas doublement rediriger #donc on ne log pas les erreurs eventuelles if [ $redirection = o ] then echo $cmd | tee -a $log_file eval "$cmd" else #cas ou le 3eme argument est mal saisi echo "ERREUR launch : verifier arguments" | tee -a $log_ file exit fi else #cas standard echo $cmd | tee -a $log_file && err=`eval "$cmd 2>&1"` if [ $? -ne 0 ] then echo "ERREUR $? : $err" | tee -a $log_file exit fi echo -e $err fi }
On peut voir dans le cas standard que je récupère le résultat dans err grâce à:
Si par la suite, je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part err=`eval "$cmd 2>&1"
C'est pour qu'effectivement apparaisse la sortie standard.
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo -e $err
Seulement, les retours à la ligne disparaissent de cet affichage.
Où est ce qu'ils ont disparu ?
Merci d'avance
Partager