Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/11/2020, à 22:30

philoeil

[RESOLU] Redirection d'erreur et read

Bonjour,

Peut-on éviter le problème suivant :

J'avais pensé utiliser :

 exec 2>"$CheminJournalErreur"

Pour capturer chaque erreur de mon script dans un fichier JournalErreur

lors de l'essai je suis tombé sur un problème : certaines sorties qui ne sont pas des erreurs vont dans le JournalErreur

exemple Script test :

#!/bin/bash
CheminJournalErreur="./JournalErreur"
CheminJournal="./Journal"
CheminJournalDeveloppeur="./JournalDeveloppeur"
 exec 2>"$CheminJournalErreur"
truncate -s 0 "$CheminJournalErreur"

TmpTexte=$(echo "
-------------------- Je lance le SCRIPT------------------------- ")
echo "$TmpTexte">>"$CheminJournal" 
echo "$TmpTexte">>"$CheminJournalDeveloppeur"
echo "$TmpTexte"
# ---------------------------------- Gestion nom  projet ---------------------------------
while [[ -z "$reponse" ]]  # While Repon1

do # While Repon1

   read -p "Un projet existe-t-il (ou vient d'être créé) ? ....... (Y pour YES)" reponse
echo "votre reponse : $reponse"

if [[ "$reponse" == "Y" ]] #If repon1
then   #If repon1
    echo " La reponse était Y "
 else #If repon1

  echo "la reponse n'était pas Y"  
    fi #If repon1

 done # While Repon1

ici donne :

$ ./TREr1.sh 

-------------------- Je lance le SCRIPT------------------------- 

Sans poser la question à l'écran

   read -p "Un projet existe-t-il (ou vient d'être créé) ? ....... (Y pour YES)" reponse

La question est dans le fichier JournalErreur

$ cat JournalErreur 
Un projet existe-t-il (ou vient d'être créé) ? ....... (Y pour YES)p

Pourquoi ?
Comment l'éviter ?

Merci de votre aide

Dernière modification par philoeil (Le 17/11/2020, à 20:09)

Hors ligne

#2 Le 16/11/2020, à 22:39

kamaris

Re : [RESOLU] Redirection d'erreur et read

printf '%s' 'Un projet existe-t-il (ou vient d'être créé) ? ....... (Y pour YES)'
read reponse
echo "votre reponse : $reponse"

?

Ou bien

2>&1 read -p 'Un projet existe-t-il (ou vient d'être créé) ? ....... (Y pour YES)' reponse
echo "votre reponse : $reponse"

Dernière modification par kamaris (Le 16/11/2020, à 22:56)

Hors ligne

#3 Le 16/11/2020, à 22:42

pingouinux

Re : [RESOLU] Redirection d'erreur et read

Bonsoir,
C'est parce que read -p envoie le texte sur stderr.

Hors ligne

#4 Le 16/11/2020, à 22:56

philoeil

Re : [RESOLU] Redirection d'erreur et read

Merci KAmaris mais je n'ai pas compris

Merci Pingouinux
J'avais bien vu que read -p envoyait le texte sur stderr

Je ne comprends pas pourquoi.
Voulez-vous dire que read -p va obligatoirement sur stderr ?
Pouvez-vous expliquer ou me donner de la lecture sur le sujet ?

read -p ne pourrait-il pas etre dirigé vers stdout ?

Hors ligne

#5 Le 16/11/2020, à 23:02

kamaris

Re : [RESOLU] Redirection d'erreur et read

La deuxième solution que j'ai donnée en #2 le redirige vers stdout, mais on s'est peut-être croisé car j'ai édité mon message après coup.

Hors ligne

#6 Le 16/11/2020, à 23:36

MicP

Re : [RESOLU] Redirection d'erreur et read

Bonjour

philoeil a écrit :

… me donner de la lecture sur le sujet ? …

Voir la doc concernant commande read, qui fait partie des commandes builtins de l'interpréteur de commandes bash
et qui peut être directement affichée par le retour de la ligne de commande suivante :

man --pager='less -p " read \["' bash

les redirections de flux :

man --pager='less -p "^REDIRECTION"' bash

et la page web suivante pour les flux stdin stdout et stderr : https://wiki.bash-hackers.org/howto/red … n_tutorial

Dernière modification par MicP (Le 17/11/2020, à 20:12)

Hors ligne

#7 Le 17/11/2020, à 20:08

philoeil

Re : [RESOLU] Redirection d'erreur et read

Bonjour,

Merci MicP pour la lecture, je comprends mieux

Merci Pingouinux effectivement l'explication de MicP en parle bien Bash Hackers Wiki

Merci Kamaris pour tes 2 solutions parfaites complètement fonctionnelles

Bravo à tous

Hors ligne

#8 Le 17/11/2020, à 20:21

MicP

Re : [RESOLU] Redirection d'erreur et read

Et il y a aussi une belle page pleine de liens passionnants
concernant les scripts bash (et autres interpréteurs de commande) : https://wiki.bash-hackers.org/

Dernière modification par MicP (Le 17/11/2020, à 20:26)

Hors ligne