Contenu | Rechercher | Menus

Annonce

Ubuntu-fr vend de superbes t-shirts et de belles clés USB 32Go
Rendez-vous sur la boutique En Vente Libre

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.

#26 Le 08/03/2020, à 08:08

ar barzh paour

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

@Watael
tu as le même problème que moi (EDIT :dans le forum /EDIT)?
dès que l'on essaie de lire le contenu de ton bash post (#25) , le bash disparaît , je ne sais pas si on voit tout ....

et je ne comprends pas :
je peux comprendre le besoin, mais je ne valide pas la démarche.
laquelle ?

Dernière modification par ar barzh paour (Le 16/03/2020, à 12:51)


Ubuntu 20.04 UEFI ( avril 2020)
diverses versions 18.04 (uefi et non uefi) ,  16.04 , 14.04 (inutilisée sauf un logiciel)
PC          : Intel(R) Pentium(R) CPU G4600 @ 3.60GHz  + 4GiB RAM DDR4-2400
Portable : Intel(R) Core(TM)2  Duo CPU     T5750  @ 2.00GHz 3Go de RAM DDR2 667 Mhz Ubuntu 20.04

Hors ligne

#27 Le 08/03/2020, à 12:28

ar barzh paour

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

@watael
désolé je n'arrive pas à utiliser ta méthode , si le coeur t'en dit ...
mais moi j'abandonne

une version fonctionnelle  qui utilise yad !!

#!/bin/bash
version="version 2020-03-08" #utilisation de yad 

echo " BASH A UTILISER EN CAS DE PROBLEME D'IMPRIMANTE OU DE SCANNER"
num=`date +%Y-%m-%d:%H-%M-%S`
fich="ImpScan-$num.txt"
echo "" >$fich                   #vide le fichier par précaution
sep1="[code]"
sep2="[/code]"

function l-c {                   # c'est ce qui lance la commande
    echo $sep1                    >> "$fich"
    echo $1                       >> "$fich"
    eval "$1"                     >> "$fich"
    echo $sep2                    >> "$fich"
   }

function resultat {
echo "fichier enregistré le $num" >> $fich
echo "
           Vous pouvez récupérer le fichier 
      $fich
           pour le transmettre au forum 
           tel quel (par copier-coller)
           car les balises sont incluses
           méthode : quand le fichier est ouvert
            Ctrl A   puis Ctrl C 
            et ensuite dans un post du forum Ctrl V "
   }

function imprimante {
    cmd="dpkg -l | grep cups"                   ; l-c "$cmd" 
    cmd="lpstat -t"                             ; l-c "$cmd" 
    cmd="/usr/sbin/lpinfo -v"                   ; l-c "$cmd" 
    cmd="cat /var/log/cups/error_log"           ; l-c "$cmd" 
    cmd="dpkg -l | grep -v ^ii"                 ; l-c "$cmd" 
    }

function scanner {
    cmd="echo SCANNER"                          ; l-c "$cmd"
    cmd="dpkg -l | grep sane"                   ; l-c "$cmd"
    cmd="sudo sane-find-scanner -q"             ; l-c "$cmd"
    cmd="scanimage -L"                          ; l-c "$cmd" 
    cmd="ls /etc/sane.d/ "                      ; l-c "$cmd"
    cmd="cat /etc/sane.d/dll.conf"              ; l-c "$cmd"
    cmd="ls  /lib/udev/rules.d | grep libsane"  ; l-c "$cmd"
    }

function information {
    cmd="cat /etc/lsb-release"                  ; l-c "$cmd"
    cmd="uname -i"                              ; l-c "$cmd"
    cmd="groups"                                ; l-c "$cmd"
    cmd="lsusb"                                 ; l-c "$cmd"
  }

function ImpScan { # reçoit deux paramètres : $1 Imp et $2 Scan
                   # $1 NON!BROTHER!EPSON!CANON!HP!SAMSUNG!Autre
                   # $2 NON!OUI
     case "$1" in
            "NON"     )     :                                                   ;;
            "BROTHER" )     cmd="echo 'IMPRIMANTE BROTHER'"    ; l-c "$cmd"
                            cmd="dpkg -l | grep -i brother"    ; l-c "$cmd"     ;;
            "EPSON"   )     cmd="echo 'IMPRIMANTE EPSON'"      ; l-c "$cmd"
                            cmd="dpkg -l | grep -i epson"      ; l-c "$cmd" 	;;
            "CANON"   )     cmd="echo 'IMPRIMANTE CANON'"      ; l-c "$cmd"
                            cmd="dpkg -l | grep -i cnijfilter" ; l-c "$cmd"
                            cmd="dpkg -l | grep -i cndrvcups"  ; l-c "$cmd"     ;;
            "HP"      )     cmd="echo 'IMPRIMANTE HP'"         ; l-c "$cmd"
                            cmd="dpkg -l | grep -i hplip"      ; l-c "$cmd"      
                            cmd="hp-check"                     ; l-c "$cmd"     ;;
            "SAMSUNG" )     cmd="echo 'IMPRIMANTE Samsung'"    ; l-c "$cmd"
                            cmd="dpkg -l | grep suld"          ; l-c "$cmd"
                            cmd="find /etc/apt -name '*.list' /
                            -exec bash -c 'echo -e \"\n\$1\n\"; nl -ba \"\$1\"' _ '{}' \;"
                            l-c "$cmd"                                          ;;
            "Autre"   )     cmd="echo 'IMPRIMANTE Autre'"      ; l-c "$cmd"     ;;
     esac
     case "$1" in
           "NON" ) :          ;;
           *     ) imprimante ;;
     esac
     case "$2" in
            "NON"     )     if [[ "$1" = "NON" ]] ; then rm $fich ; fi       ;;
            "OUI"     )     scanner ;;
     esac     
     }

function choix {
 res=$(yad   --title="$0" --center        \
        --text="Si l'Imprimante est concernée choisissez sa marque
                Indiquez si le scanner est concerné (oui/non)
                (si oui le mot de passe administrateur sera demandé) 

                et si vous voulez visualiser le fichier résultat
                laisser l'option visualisation sur OUI
                ce qui permettra de transmettre plus facilement
                le résultat sur le forum
                                                      "    \
        --form                       \
        --field="Imprimante:CB"        'NON!BROTHER!EPSON!CANON!HP!SAMSUNG!Autre'    \
        --field="Scanner:CB"           'NON!OUI'    \
        --field="Visualisation du résultat :CB"   'OUI!NON' \
        --button="gtk-close:1"       \
        --button="gtk-ok:0"          \     
        )
  [[ $? -eq 1 ]] && exit 0  # sort si on clic sur fermer
   imp=$(awk -F'|' '{print $1}' <<< $res)
  scan=$(awk -F'|' '{print $2}' <<< $res)
  visu=$(awk -F'|' '{print $3}' <<< $res)

}

choix
information
ImpScan "$imp" "$scan"
if [[ -e "$fich" ]] 
  then
    resultat
    case $visu in
	    "OUI"   )	xdg-open "./$fich" 	;;
	    "NON"	)	exit 63       	;;
	esac
fi

Dernière modification par ar barzh paour (Le 08/03/2020, à 13:10)


Ubuntu 20.04 UEFI ( avril 2020)
diverses versions 18.04 (uefi et non uefi) ,  16.04 , 14.04 (inutilisée sauf un logiciel)
PC          : Intel(R) Pentium(R) CPU G4600 @ 3.60GHz  + 4GiB RAM DDR4-2400
Portable : Intel(R) Core(TM)2  Duo CPU     T5750  @ 2.00GHz 3Go de RAM DDR2 667 Mhz Ubuntu 20.04

Hors ligne

#28 Le 08/03/2020, à 13:09

Watael

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

je peux comprendre le besoin, mais je ne valide pas la démarche.

je veux dire que je comprends bien qu'on a besoin de formater les résultats de commandes par souci de lisibilité, mais que la méthode me semble mauvaise.
d'ailleurs, si je voulais absolument faire comme tu le veux, à la place je ferais : fonctionAffichage 'ma commande avec des arguments'
mais je ne ferais jamais ça : tout plutôt qu'à un moment ou un autre devoir utiliser eval.

dès que l'on essaie de lire le contenu de ton bash post (#25) , le bash disparaît , je ne sais pas si on voit tout ....

je ne comprends pas. il s'agit de l'affichage sur le forum, ou de l'exécution du script ?

Dernière modification par Watael (Le 08/03/2020, à 13:12)


Welcome to sHell. · eval is evil.

Hors ligne

#29 Le 08/03/2020, à 13:32

ar barzh paour

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

Watael a écrit :

je ne comprends pas. il s'agit de l'affichage sur le forum, ou de l'exécution du script ?

c'est dans le post du forum
essaie de cliquer sur ton bash dans le post #25 par exemple
ou alors ça vient de mon PC mais j'en doute je vais essayer sur un autre PC!!!

voilà c'est identique sur mon portable !!!!!!!
dès qu'on clique sur la fenêtre contenant le bash ,le contenu disparaît pour réapparaître un moment assez long suivant

quand je pourrais lire le post #25 je me pencherai dessus un peu plus !!!!!

Dernière modification par ar barzh paour (Le 08/03/2020, à 13:44)


Ubuntu 20.04 UEFI ( avril 2020)
diverses versions 18.04 (uefi et non uefi) ,  16.04 , 14.04 (inutilisée sauf un logiciel)
PC          : Intel(R) Pentium(R) CPU G4600 @ 3.60GHz  + 4GiB RAM DDR4-2400
Portable : Intel(R) Core(TM)2  Duo CPU     T5750  @ 2.00GHz 3Go de RAM DDR2 667 Mhz Ubuntu 20.04

Hors ligne

#30 Le 08/03/2020, à 13:48

melixgaro

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

J'ai le même problème pour lire le script de Watael. Dès que je faire défiler, le script disparaît.


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#31 Le 08/03/2020, à 13:49

melixgaro

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

Test

Watael a écrit :

je peux comprendre le besoin, mais je ne valide pas la démarche.

bon, je n'ai pas testé, mais c'est l'idée :

#!/bin/bash

echo "BASH A UTILISER EN CAS DE PROBLEME D'IMPRIMANTE OU DE SCANNER"
type -p zenity || { >&2 echo "missing prog: zenity; quitting."; exit 1;}

printf -v date '%(%Y-%m-%d:%H-%M-%S)T'
fich="/tmp/impScan-$date.txt"

declare -A Zenity=(
    [imprimante_titre]="\!\!\!\! CHOIX IMPRIMANTE Réponses possibles  : (E ou C ou B ou H ou S ou N)"
    [imprimante_texte]="Ce programme va renseigner un fichier en fonction de votre imprimante ....
    répondez
        E  si vous avez une EPSON
        C  si vous avez une CANON
        B  si vous avez une BROTHER
        H  si vous avez une HP
        S  si vous avez une SAMSUNG
        A  pour une autre"
    [impScan_titre]="\!\!\!\! Réponses possibles  : (I ou S ou IS ou N)"
    [impScan_texte]="Ce programme va générer un fichier ....
    répondez
        I  si vous avez un problème d' imprimante
        S  si vous avez un problème de scanner
        C si vous avez un problème d'imprimante et de scanner
        N  pour arrêter
    remarque : il peut y avoir demande de mot de passe administrateur "
)

sep()
{
    printf '=%.s' {1..80}; echo
}
resultat()
{
    echo "fichier enregistré le $num" >> $fich
    printf '\nVous pouvez récupérer le fichier\n%s\npour le transmettre au forum' "$fich"
}
imprimante()
{
    impAr=( "${FUNCNAME^^}" )

    local rep=`zenity --entry --title "${Zenity[${FUNCNAME}_titre]}" --text "${Zenity[${FUNCNAME}_texte]}" --width "800"`
    case $rep in
        [eE]) imp="EPSON"; pattern='epson';;
        [cC]) imp='CANON'; pattern='cnijfilter\|cndrvcups';;
        [bB]) imp='BROTHER'; pattern='brother';;
        [hH]) imp='HP'; pattern='hplip';;
        [sS]) imp='Samsung'; pattern='sld';;
        [aA]) : ;;
        *   ) echo "utilisez seulement ECBHSA S.V.P.";;
    esac

    impAr+=( "Imprimante: $imp" )
    impAr+=( "$(dpkg -l | grep -i "$pattern")" )
    impAr+=( "$(test "$imp" = "HP" && hp-check)" )
    impAr+=( "$(test "$imp" = "Samsung" && find /etc/apt -name '*.list' -exec bash -c 'echo -e "\n$1\n"; nl -ba "$1"' _ '{}' \;)" )

    impAr+=( "$(dpkg -l | grep cups)" )
    impAr+=( "$(lpstat -t)" )
    impAr+=( "$(/usr/sbin/lpinfo -v)" )
    impAr+=( "$(cat /var/log/cups/error_log)" )
    impAr+=( "$(dpkg -l | grep -v '^ii')" )

    for i in ${!impAr[@]}; do sep; echo "${impAr[i]}"; sep; done >>"$fich"
}
scanner()
{
    scanAr=( "${FUNCNAME^^}" )
    scanAr+=( "$(dpkg -l | grep sane)" )
    scanAr+=( "$(sudo sane-find-scanner -q)" )
    scanAr+=( "$(scanimage -L)" )
    scanAr+=( "$(ls /etc/sane.d/)" )
    scanAr+=( "$(cat /etc/sane.d/dll.conf)" )
    scanAr+=( "$(printf '%s\n' /lib/udev/rules.d/*libsane*)" )

    for i in ${!scanAr[@]}; do sep; echo "${impAr[i]}"; sep; done >>"$fich"
}

impScan()
{
    until [[ $rep == ?([iI]|[sS]|[cC]) ]]
    do
        local rep=`zenity --entry --title "${Zenity[${FUNCNAME}_titre]}" --text "${Zenity[${FUNCNAME}_texte]}" --width "800"`
        case $rep in
            [iI])  imprimante
                   ;;
            [sS])  scanner
                   ;;
            [cC])  imprimante
                   scanner
                   ;;
            [nN])  exit 1
                   ;;
               *)  echo "utilisez seulement iIsSnN S.V.P."
                   continue
                   ;;
        esac   
        resultat
        exit
    done
}

impScan

edit: on peut "complexifier" avec un tableau indexé listant les indices d'un tableau associatif :

ar=( 'cmd 1' 'cmd 2' )
declare -A aAr=( ['cmd_1']='cmd1 with args' ['cmd_2]='cmd2 with args' )
for cmd in "${ar[@]}"; do cmdAr+=( "$(sep)" "$cmd" "$(sep)" "$(aAr[$cmd]}" "$(sep)" )

ça, il faut tester.
au moins, ça me semble préférable à cmd="commande arg arg..."; funcDoing "$cmd" pour chaque commande.


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#32 Le 08/03/2020, à 14:15

Watael

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

ah? je n'ai pas de problème de "lecture" du site avec Chromium.
par contre, effectivement, avec Firefox, c'est la cata.
mais on peut faire une sélection à l'aveugle, copier, puis coller dans son éditeur favori.


Welcome to sHell. · eval is evil.

Hors ligne

#33 Le 08/03/2020, à 16:21

ar barzh paour

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

je bute toujours

[code]jpb@jpb-MS-7A70:~$ cmd="dpkg -l | grep cups"
jpb@jpb-MS-7A70:~$ aAfficher=""
jpb@jpb-MS-7A70:~$ aAfficher+=("$(${cmd})")
dpkg-query: aucun paquet ne correspond à |
jpb@jpb-MS-7A70:~$ [/code]


@melixgaro et Watael

quand je lance le script du #31 (je n'arrive pas à copier l'original) j'obtiens




jpb@jpb-MS-7A70:~$ bash   ./ImpScan-W.sh
BASH A UTILISER EN CAS DE PROBLEME D'IMPRIMANTE OU DE SCANNER
/usr/bin/zenity

et avec -x

jpb@jpb-MS-7A70:~$ bash   -x ./ImpScan-W.sh
+ echo 'BASH A UTILISER EN CAS DE PROBLEME D'\''IMPRIMANTE OU DE SCANNER'
BASH A UTILISER EN CAS DE PROBLEME D'IMPRIMANTE OU DE SCANNER
+ type -p zenity
/usr/bin/zenity
+ printf -v date '%(%Y-%m-%d:%H-%M-%S)T'
+ fich=/tmp/impScan-2020-03-08:15-01-53.txt
+ Zenity=([imprimante_titre]="\!\!\!\! CHOIX IMPRIMANTE Réponses possibles  : (E ou C ou B ou H ou S ou N)" [imprimante_texte]="Ce programme va renseigner un fichier en fonction de votre imprimante ....
    répondez
        E  si vous avez une EPSON
        C  si vous avez une CANON
        B  si vous avez une BROTHER
        H  si vous avez une HP
        S  si vous avez une SAMSUNG
        A  pour une autre" [impScan_titre]="\!\!\!\! Réponses possibles  : (I ou S ou IS ou N)" [impScan_texte]="Ce programme va générer un fichier ....
    répondez
        I  si vous avez un problème d' imprimante
        S  si vous avez un problème de scanner
        C si vous avez un problème d'imprimante et de scanner
        N  pour arrêter
    remarque : il peut y avoir demande de mot de passe administrateur ")
+ declare -A Zenity
+ impScan
+ [[ '' == ?([iI]|[sS]|[cC]) ]]
jpb@jpb-MS-7A70:~$ 

,je laisse tomber

Dernière modification par ar barzh paour (Le 08/03/2020, à 16:23)


Ubuntu 20.04 UEFI ( avril 2020)
diverses versions 18.04 (uefi et non uefi) ,  16.04 , 14.04 (inutilisée sauf un logiciel)
PC          : Intel(R) Pentium(R) CPU G4600 @ 3.60GHz  + 4GiB RAM DDR4-2400
Portable : Intel(R) Core(TM)2  Duo CPU     T5750  @ 2.00GHz 3Go de RAM DDR2 667 Mhz Ubuntu 20.04

Hors ligne

#34 Le 08/03/2020, à 16:32

Watael

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

il ne faut pas stocker les commandes "complexes" dans des variables.
c'est àmha une mauvaise pratique.

ah! ce n'est pas ?(
c'est @(
je n'avais pas vérifié, excuse-moi.

Dernière modification par Watael (Le 08/03/2020, à 16:32)


Welcome to sHell. · eval is evil.

Hors ligne

#35 Le 08/03/2020, à 16:40

ar barzh paour

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

pour la visualisation des scripts effectivement c'est bon avec chromium !!!!!


Ubuntu 20.04 UEFI ( avril 2020)
diverses versions 18.04 (uefi et non uefi) ,  16.04 , 14.04 (inutilisée sauf un logiciel)
PC          : Intel(R) Pentium(R) CPU G4600 @ 3.60GHz  + 4GiB RAM DDR4-2400
Portable : Intel(R) Core(TM)2  Duo CPU     T5750  @ 2.00GHz 3Go de RAM DDR2 667 Mhz Ubuntu 20.04

Hors ligne

#36 Le 09/03/2020, à 07:06

fabux

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

J'ai déplacé le script (du moins la version qui est dans ce post)
dans la doc dans un brouillon.
Je sais que c'est chiant ça fait "sortir" du forum mais c'est moins pire que rien (pour ceux qui sont sous firefox).

Par contre mettez à jour aussi là-bas.

Hors ligne

#37 Le 09/03/2020, à 12:20

melixgaro

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

Dans la citation que j'ai faite, ça marche non sous fiefox ? (c'est le cas chez moi)


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#38 Le 09/03/2020, à 16:26

ar barzh paour

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

@]fabux merci
  je retiens c'est moins pire que rien lol

@ melixgaro : oui j'ai récupéré le script

@ Watael : pour faire fonctionner ce script j'ai effectué les modifications suivantes
dans scaner()

echo "${scanAr[i]}" au lieu de impAr[i]

dans impScan()

until [[ $rep == @([iI]|[sS]|[cC]) ]]     #au lieu de ?[ mais tu l'avais vu en #34 

ajout :
pour obtenir des balises

 et 

j'ai ajouté

sep1() {   printf '%s' [code]     ; echo ; }
sep2() {   printf '%s' [/code]    ; echo ; }

et supprimé sep()

for i in ${!impAr[@]} ; do sep1; echo "${impAr[i]}" ; sep2; done >>"$fich"
for i in ${!scanAr[@]}; do sep1; echo "${scanAr[i]}"; sep2; done >>"$fich"

pour imprimante Autre on a un

dpkg -l grep -i

qui se lance , j'ai ajouté imp et pattern

[aA]) imp='Autre'  ; pattern='Autre'               ;; # (pattern n'est pas utilisé)

qui est utilisé ici

impAr+=( "$(test "$imp" != "Autre" && dpkg -l | grep -i "$pattern")" )

modif mineure

 [impScan_titre]="\!\!\!\! Réponses possibles  : (I ou S ou C ou N)"

au lieu de

 [impScan_titre]="\!\!\!\! Réponses possibles  : (I ou S ou IS ou N)"


il manquait aussi devant chaque résultat la commande qui a été lancée
(on a un résultat mais on ne sait pas lequel)

j'ai essayé de bricoler quelque chose

pour obtenir ces commandes est-ce correct ?
pour les commandes simples 

    impAr+=( "lpstat -t" )
    impAr+=( "$(lpstat -t)" )

ou qui me semble équivalent   
    impAr+=( "lpstat -t" "$(lpstat -t)" )
     
mais quand il y a test est-ce correct ?
   

    impAr+=( "$(test "$imp" != "Autre" && echo "dpkg -l | grep -i $pattern")" )
    impAr+=( "$(test "$imp" != "Autre" && dpkg -l | grep -i "$pattern")" )

et pour find  !!!! aïe je préfère passer par une variable en faisant attention aux protection

    cmd="find /etc/apt -name '*.list' -exec bash -c 'echo -e \"\n\$1\n\"; nl -ba \"\$1\"' _ '{}' \;"
    impAr+=( "$(test "$imp" = "Samsung" && echo "$cmd")" )
    impAr+=( "$(test "$imp" = "Samsung" && find /etc/apt -name '*.list' -exec bash -c 'echo -e "\n$1\n"; nl -ba "$1"' _ '{}' \;)" )

   

ce qui donne
   

#!/bin/bash

echo "BASH A UTILISER EN CAS DE PROBLEME D'IMPRIMANTE OU DE SCANNER"
type -p zenity || { >&2 echo "missing prog: zenity; quitting."; exit 1;}

printf -v date '%(%Y-%m-%d:%H-%M-%S)T'
fich="/tmp/impScan-$date.txt"

declare -A Zenity=(
    [imprimante_titre]="\!\!\!\! CHOIX IMPRIMANTE Réponses possibles  : (E ou C ou B ou H ou S ou N)"
    [imprimante_texte]="Ce programme va renseigner un fichier en fonction de votre imprimante ....
    répondez
        E  si vous avez une EPSON
        C  si vous avez une CANON
        B  si vous avez une BROTHER
        H  si vous avez une HP
        S  si vous avez une SAMSUNG
        A  pour une autre"
    [impScan_titre]="\!\!\!\! Réponses possibles  : (I ou S ou C ou N)"
    [impScan_texte]="Ce programme va générer un fichier ....
    répondez
        I  si vous avez un problème d' imprimante
        S  si vous avez un problème de scanner
        C si vous avez un problème d'imprimante et de scanner
        N  pour arrêter
    remarque : il peut y avoir demande de mot de passe administrateur "
)

sep1() {   printf '%s' [code]     ; echo ; }
sep2() {   printf '%s' [/code]    ; echo ; }

resultat()
{
    echo "fichier enregistré le $date" >> "$fich"
    printf '\nVous pouvez récupérer le fichier\n%s\npour le transmettre au forum' "$fich"
}
imprimante()
{
    impAr=( "${FUNCNAME^^}" )

    local rep=`zenity --entry --title "${Zenity[${FUNCNAME}_titre]}" --text "${Zenity[${FUNCNAME}_texte]}" --width "800"`
    case $rep in
        [eE]) imp="EPSON"; pattern='epson';;
        [cC]) imp='CANON'; pattern='cnijfilter\|cndrvcups';;
        [bB]) imp='BROTHER'; pattern='brother';;
        [hH]) imp='HP'; pattern='hplip';;
        [sS]) imp='Samsung'; pattern='sld';;
        [aA]) imp='Autre'  ; pattern='Autre'               ;;
        *   ) echo "utilisez seulement ECBHSA S.V.P.";;
    esac

    impAr+=( "Imprimante: $imp" )
    
    impAr+=( "$(test "$imp" != "Autre" && echo "dpkg -l | grep -i $pattern")" )
    impAr+=( "$(test "$imp" != "Autre" && dpkg -l | grep -i "$pattern")" )

    
    impAr+=( "$(test "$imp" = "HP" && echo "hp-check")" )
    impAr+=( "$(test "$imp" = "HP" && hp-check)" )
    
    
    cmd="find /etc/apt -name '*.list' -exec bash -c 'echo -e \"\n\$1\n\"; nl -ba \"\$1\"' _ '{}' \;"
    impAr+=( "$(test "$imp" = "Samsung" && echo "$cmd")" )
    impAr+=( "$(test "$imp" = "Samsung" && find /etc/apt -name '*.list' -exec bash -c 'echo -e "\n$1\n"; nl -ba "$1"' _ '{}' \;)" )    

    impAr+=( "dpkg -l | grep cups" )
    impAr+=( "$(dpkg -l | grep cups)" )

    impAr+=( "lpstat -t" )
    impAr+=( "$(lpstat -t)" )

    impAr+=( "/usr/sbin/lpinfo -v" )
    impAr+=( "$(/usr/sbin/lpinfo -v)" )

    impAr+=( "cat /var/log/cups/error_log" )
    impAr+=( "$(cat /var/log/cups/error_log)" )

    impAr+=( "dpkg -l | grep -v '^ii'" )
    impAr+=( "$(dpkg -l | grep -v '^ii')" )


    for i in ${!impAr[@]}; do sep1; echo "${impAr[i]}"; sep2; done >>"$fich"
}

scanner()
{
    scanAr=( "${FUNCNAME^^}" )
    scanAr+=(   "dpkg -l | grep sane" )
    scanAr+=( "$(dpkg -l | grep sane)" )

    scanAr+=(   "sudo sane-find-scanner -q" )
    scanAr+=( "$(sudo sane-find-scanner -q)" )

    scanAr+=(   "scanimage -L" )
    scanAr+=( "$(scanimage -L)" )

    scanAr+=(   "ls /etc/sane.d/" )
    scanAr+=( "$(ls /etc/sane.d/)" )

    scanAr+=(   "cat /etc/sane.d/dll.conf" )
    scanAr+=( "$(cat /etc/sane.d/dll.conf)" )

    scanAr+=(   "printf '%s\n' /lib/udev/rules.d/*libsane*" )
    scanAr+=( "$(printf '%s\n' /lib/udev/rules.d/*libsane*)" )
    
    for i in ${!scanAr[@]}; do sep1; echo "${scanAr[i]}"; sep2; done >>"$fich"   # erreur  impAr[i] au lieu de scanAr[i]
}

impScan()
{
     
    until [[ $rep == @([iI]|[sS]|[cC]) ]]   # erreur    @[ et non ?[
    do
        local rep=`zenity --entry --title "${Zenity[${FUNCNAME}_titre]}" --text "${Zenity[${FUNCNAME}_texte]}" --width "800"`
        case $rep in
            [iI])  imprimante
                   ;;
            [sS])  scanner
                   ;;
            [cC])  imprimante
                   scanner
                   ;;
            [nN])  exit 1
                   ;;
               *)  echo "utilisez seulement iIsSnN S.V.P."
                   continue
                   ;;
        esac   
        resultat
        exit
    done
}

impScan

Dernière modification par ar barzh paour (Le 10/03/2020, à 11:42)


Ubuntu 20.04 UEFI ( avril 2020)
diverses versions 18.04 (uefi et non uefi) ,  16.04 , 14.04 (inutilisée sauf un logiciel)
PC          : Intel(R) Pentium(R) CPU G4600 @ 3.60GHz  + 4GiB RAM DDR4-2400
Portable : Intel(R) Core(TM)2  Duo CPU     T5750  @ 2.00GHz 3Go de RAM DDR2 667 Mhz Ubuntu 20.04

Hors ligne

#39 Le 09/03/2020, à 16:33

Watael

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

le test doit être à l'extérieur : tu n'ajoutes la commande que si test est validé.
il n'est pas nécessaire de faire état du test dans les log.


Welcome to sHell. · eval is evil.

Hors ligne

#40 Le 10/03/2020, à 12:06

ar barzh paour

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

très bien ,
j'utilise plus maintenant musescore que  bash ,
j'imprime celui-ci pour le mettre dans mon bouquin de bash pour l'exemple  .... et pour utiliser "les bonnes pratiques"


Ubuntu 20.04 UEFI ( avril 2020)
diverses versions 18.04 (uefi et non uefi) ,  16.04 , 14.04 (inutilisée sauf un logiciel)
PC          : Intel(R) Pentium(R) CPU G4600 @ 3.60GHz  + 4GiB RAM DDR4-2400
Portable : Intel(R) Core(TM)2  Duo CPU     T5750  @ 2.00GHz 3Go de RAM DDR2 667 Mhz Ubuntu 20.04

Hors ligne

#41 Le 10/03/2020, à 18:21

FrancisFDZ

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

Rappel : titre de la discussion = "Tuto : les Informations utiles à donner lorsque j'ai un problème."
J'ai la nette impression qu'on est de plus en plus hors sujet.

Dernière modification par FrancisFDZ (Le 10/03/2020, à 18:22)


-- On peut avoir des raisons de se plaindre et n'avoir pas raison de se plaindre --
[Victor Hugo]

Hors ligne

#42 Le 09/04/2020, à 16:18

moko138

Re : Tuto : les Informations utiles à donner lorsque j'ai un probleme.

En #2, sylvain3800 a écrit :

Voilá si des aidants voient des erreurs, des oublis  ont des remarques... ben qu'ils hésitent pas  je modifierais le message initial en fonction des remarques

Cf. #17.

= =

Mais après son gros travail initial, sylvain3800 a essuyé plus de critiques que de remerciements.
C'est dommage.
Et il est à craindre qu'il ait choisi de quitter le forum (son dernier message remonte au 4 février).


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne