Tableau de données

Tableau


#!bin/sh

function AlimentationLibelle ()
{
#set -v

#for (( i=0; i<${#TabLibelle[@]} ; i++ )); do
#echo ${TabLibelle[$i]} ${TabPositionDebut[$i]} ${TabPositionFin[$i]}
#done

eval Tlen=\${#${NOMVAR}[@]}
for (( i=0; i<${Tlen} ; i++ )); do
eval tNOMVAR=\${${NOMVAR}[$i]}
eval tTABDB=\${${TABDB}[$i]}
eval tTABVF=\${${TABVF}[$i]}
echo ${tNOMVAR} ${tTABDB} ${tTABVF}
done


}

set -a

TabPositionDebut=(1 3 6 9 22 35 43 51 52 60 68 74 79 84 89 99 102 104 105 113 116 119 122 140)
TabPositionFin=(2 5 8 21 34 42 50 51 59 67 73 78 83 88 98 101 103 104 112 115 118 121 139 164)
TabLibelle=(Version Code_acte_de_gestion Régime Individu_NI Individu_NE DateDebut DateFin CodeOperation DateDebutInitiale DateFinInitiale ComposantTechnique CodeMotif CodeSousType CodeTaux Montant NombreJour NombreMois CodeRejet DateEvenement NumeroOrdreEvenement CaisseMSA CORGAMO HorodatageTraitement)

NOMVAR=TabLibelle
TABDB=TabPositionDebut
TABVF=TabPositionFin

AlimentationLibelle


=============== Résultat
Version 1 2
Code_acte_de_gestion 3 5
Régime 6 8
Individu_NI 9 21
Individu_NE 22 34
DateDebut 35 42
DateFin 43 50
CodeOperation 51 51
DateDebutInitiale 52 59
DateFinInitiale 60 67
ComposantTechnique 68 73
CodeMotif 74 78
CodeSousType 79 83
CodeTaux 84 88
Montant 89 98
NombreJour 99 101
NombreMois 102 103
CodeRejet 104 104
DateEvenement 105 112
NumeroOrdreEvenement 113 115
CaisseMSA 116 118
CORGAMO 119 121
HorodatageTraitement 122 139


  • Autre exemple
  • 
    #!/usr/bin/sh
    #
    ###########################################################################################################
    #
    # Créer une page html résumant par onglet un état des activités cible à contrôler
    # 
    #  Bilan Matin
    #
    ###########################################################################################################
    #
    # TZ doit etre valorise
    # exemple : TZ=NFT-1DFT,M3.5.0/2:00:00,M10.5.0/3:00:00
    #
    set -a
    . ~/.bash_profile
    
    GetDate()
    {
    # GetDate nDays [format]
    # Exemple d'utilisation: export NAMEDIR=$(GetDate -1 '+%Y.%m.%d')
    
    typeset -i nDays=$1; format=$2
    eval $(echo $TZ | sed 's!\([^-0-9]*\)\([-0-9]*\)\(.*\)!typeset -i localOffset=\2;zon1=\1;zon2=\3!')
    TZ=$zon1$((localOffset-24*nDays))$zon2 date $format
    }
    ## echo "Nous sommes le : $( date +%Y.%m.%d )"
    ##
    ## GetDate -6 '+%Y.%m.%d.%j'
    ## GetDate -7 '+%Y.%m.%d.%j'
    ## GetDate -8 '+%Y.%m.%d.%j'
    #test $(date +%u) -eq 1 && date=$(GetDate -2 '+%d%m%Y')
    #Datep=$(GetDate -1 '+%Y%m%d')
    
    ##-------------------------------------------------------------
    ##----------- d abord constituer chaque onglet afin d avoir un code retour sur l ensemble
    ##-------------------------------------------------------------
    
    LesOnglets=(ControlM EAI DepotEAI DepotCFT Mails CFT Divers LesAlertes LiensUtiles)
    eval NbLesOnglets=\${#LesOnglets[@]}
    
    for (( i=0; i<${NbLesOnglets} ; i++ )); do
      eval onglet="\${LesOnglets[${i}]}"
      LesOngletsJS=${LesOngletsJS}${sep}\"${onglet}\"
      . /home/user/matin_${onglet}.sh > /tmp/Bilan_${onglet}.html
      sep=','
    done
    
    ##-------------------------------------------------------------
    ##--------- Mettre si alert onglet en rouge
    ##-------------------------------------------------------------
    
    ### icone tete
    #Rouge='<input type="image" value="" style="width:15px; height:25px;" src="/image/teterouge.jpg" '
    #Vert='<input type="image" value=""  style="width:15px; height:25px;" src="/image/teteverte.jpg" title="OK" >'
    
    ### icone ellipse
    Rouge='<input type="button" value="" style="width:15px; height:25px; border:solid 2px #ff0000; border-radius:51px;" '
    Vert='<input type="button" value=""  style="width:15px; height:25px; border:solid 2px #7BFF00; border-radius:51px;" title="OK" >'
    
    #FinalIcon='yes.gif' # voir dans ~/Bilan_Matin.deb
    FinalIcon='teteverte.jpg' # voir dans ~/Bilan_Matin.deb
    
    #---------- Les alerts par onglet
    #. /home/user/matin_Alerts.txt
    #------ les alerts par onglet pour le mettre en rouge
    #
    # mettre ! devant critère pour rechercher sur non présent
    #
    #--------------- Onglet
    Alert_ControlM=(
     'NOTOK  CS'\
     'NOTOK  CB'\
     'NOTOK  ROK_OUTPUT_EAI'\
     'NOTOK  RE_INPUT_EAI'\
     'NOTOK  E_OUTPUT_EAI'\
     'PE-OK-'
    );
    
    #--------------- Onglet
    ##retrait pas necessaire process flottant '!MQUP.TO.MQUG '\
    Alert_EAI=(
     'QUEUE(TEAI.TENTS00H)TYPE(QLOCAL)    CURDEPTH([1-9]'\
     'csgflaw[r,e]/reception  [1-9]'\
     'csgflaw[r,e]/emission/KO  [1-9]'\
     'OSCOMPSTAT 99'\
     'PLANTAGE'\
     '!apreia '\
     '!apteai '\
     '!2	  apreia '\
     '!2	  apteai '\
     '!4	  apteai '\
     '!5	  apteai '\
     '!2	  was5pr '\
     '!mqm '\
     '!34	mqm '\
     '!runmqchl '\
     '!runmqlsr '\
     '!amqpcsea '\
     '!amqzxma0 '\
     '!TEAI.TEFFP00H '\
     '!TEAI.TENTS00H '\
     '[8-9][0-9]% '\
     '1[0-9][0-9]% '
    );
    
    #--------------- Onglet
    Alert_DepotsEAI=(
     'PLANTAGE'
    );
    
    #--------------- Onglet
    Alert_DepotsCFT=
    
    #--------------- Onglet
    Alert_Mails=(
     'Sollicitation UID : [0-9][0-9]'\
     'sollicitation SM N'\
     'Gestion_des_Flux'
    );
    
    #--------------- Onglet
    Alert_CFT=(
     'not running'\
     'MUTUALIA A'\
     'RF[K,H,D,T]-'\
     'SF[K,H,D,T]-'
    );
    
    #--------------- Onglet
    Alert_Divers=(
     'INTEGRITY ERROR'\
     'ERROR:'
    );
    
    ## Pas ctrl le lundi
    if test $(date +%u) -gt 1
    then
    Alert_Divers=(
     ${Alert_Divers}\
     '!CSDMCA0E'\
     '!CSDMAT0E'
    );
    fi
    
    
    #--------- onglet a vert ou rouge si alert
    for (( i=0; i<${NbLesOnglets} ; i++ )); do
    
        eval onglet="\${LesOnglets[${i}]}"
        eval Tlen=\${#Alert_${onglet}[@]}
        eval EtaT${i}="\${Vert}"
        TitleCrit=
    
      Vrai=0
      TitleCrit=
      Tsep=
      for (( j=0; j<${Tlen} ; j++ )); do
            eval CritFnd="\${Alert_${onglet}[$j]}"
            cDe=$(echo "${CritFnd}" | awk '{if ($0 ~ /!/) {printf("eq")} else {printf("gt")} }')
            CCritFnd="${CritFnd}"
            test "${cDe}" == "eq" && CCritFnd="${CritFnd#\!}"
    ##Les alarmes en rouge
            test $(grep -c "${CCritFnd}" /tmp/Bilan_${onglet}.html) -${cDe} 0 && TitleCrit="${TitleCrit}${Tsep}${CritFnd}" && Tsep='
    ' && (( Vrai+=1 ))
      done
      test ${Vrai} -gt 0 &&  Rouget="${Rouge} title=\"${TitleCrit}\" >" && eval EtaT${i}="\${Rouget}" && FinalIcon='teterouge.jpg'
    
    
    done
    
    ##-------------------------------------------------------------
    ##------------- constituer Bilan_Final.html
    ##-------------------------------------------------------------
    
    FileBilan=/tmp/Bilan_Matin.html
    exec 1> ${FileBilan}
    
    . ~/Bilan_Matin.deb
    cat << @EOFF
    
    <a name="Debut" ></a>
    <pre>
    Bilans au $(date) refresh in 15’
    </pre>
    <div>
    
    <ul id="onglets">
    @EOFF
    
    for (( i=0; i<${NbLesOnglets} ; i++ )); do
      eval onglet="\${LesOnglets[${i}]}"
      eval Etat="\${EtaT${i}}"
    cat << @EOFF
    <li><a href="#" onClick="activerMenu(this, '${onglet}'); return false;" >${Etat} ${onglet}</a>
    @EOFF
    
    done
    
    cat << @EOFF
    </ul>
    @EOFF
    
    ##-------------------------------------------------------------
    ##---------- rubrique de chaque onglet
    ##-------------------------------------------------------------
    for (( i=0; i<${NbLesOnglets} ; i++ )); do
      eval onglet="\${LesOnglets[${i}]}"
      cat /tmp/Bilan_${onglet}.html
    done
    
    ##-------------------------------------------------------------
    ##---------- Fin page Bilan
    ##-------------------------------------------------------------
    cat << @EOFF
    
    <script type="text/javascript" >
    activerMenu(this, 'ControlM');
    </script>
    </body>
    </html>
    
    @EOFF
    
    ##-------------------------------------------------------------
    ##---------- Mettre a dispo Bilan sur Hermes
    test -f ${FileBilan} && scp ${FileBilan} user@serveur:
    
    
    

    Previous page: Convert base 10 36 Hexa Dec Bin
    Page suivante : Merge fichiers