IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Problème script shell sous ksh


Sujet :

Linux

  1. #1
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 268
    Points : 175
    Points
    175
    Par défaut Problème script shell sous ksh
    Bonjour, tout d'abord dsl si je n'ai pas posté mon post au bon endroit mais je ne savais aps ou je pouvais le poster.

    voici mon script

    #!/bin/ksh

    typeset -i tot_mts_int=0
    typeset -i tot_mts_adm=0
    typeset -i tot_final=0
    typeset -i tot_cu_100=0
    typeset -i tot_cu_100_up=0
    typeset -i tot_cu_100_restant=0
    typeset -i tot_cu_1000=0
    typeset -i tot_cu_1000_up=0
    typeset -i tot_cu_1000_restant=0
    typeset -i tot_fb_100=0
    typeset -i tot_fb_100_up=0
    typeset -i tot_fb_100_restant=0
    typeset -i tot_fb_1000=0
    typeset -i tot_fb_1000_up=0
    typeset -i tot_fb_1000_restant=0

    mts=mts.csv
    rm $mts
    touch $mts
    total_port=total.csv
    rm $total_port
    touch $total_port

    cat INVENTAIRE.csv | grep -i mon >$mts # recherche dans inventaire par rapport a mon et resultat mit dans mts.csv

    cat $mts |while read LIGNE
    do

    set $LIGNE
    tot_mts_int=$(($tot_mts_int+$5))
    tot_mts_adm=$(($tot_mts_adm+$7))
    tot_final=$(($tot_mts_int-$tot_mts_adm))
    tot_cu_100=$(($tot_cu_100+$8))
    tot_cu_100_up=$(($tot_cu_100_up+$12))
    tot_cu_100_restant=$(($tot_cu_100-$tot_cu_100_up))
    tot_cu_1000=$(($tot_cu_1000+$9))
    tot_cu_1000_up=$(($tot_cu_1000_up+$13))
    tot_cu_1000_restant=$(($tot_cu_1000-$tot_cu_1000_up))
    tot_fb_100=$(($tot_fb_100+$10))
    tot_fb_100_up=$(($tot_fb_100_up0+$14))
    tot_fb_100_restant=$(($tot_fb_100-$tot_fb_100_up))
    tot_fb_1000=$(($tot_fb_1000+$11))
    tot_fb_1000_up=$(($tot_fb_1000_up+$15))
    tot_fb_1000_restant=$(($tot_fb_1000-$tot_fb_1000_up))

    done
    echo " Site de Montsouris" >$total_port
    echo " Nbres Int MTS restant;Nbres Cu 100 restant;Nbres Cu 1000 restant;Nbres Fb 100 restant;Nbres Fb 1000 restant" >>$total_port
    echo "${tot_final};${tot_cu_100_restant};${tot_cu_1000_restant};${tot_fb_100_restant};${tot_fb_1000_restant}" >>$total_port
    Mon probleme c'est que dans mon fichier total.csv j'ai les 2 premiers echo qui se mette et en dessous j'ai en resultat que des 0 alors que je devrais avoir des chiffres autres que ca et je ne sais pas d'ou ca peut provenir.

    Le fichier inventaire.csv est un fichier ou il y a ecrit dans cette ordre:
    ip; description; nom; lieu; nb inter; oper; admin; cu 100; cu 1000; fibr 100; fbr 1000; cu 100 up; cu 1000 up; fibr 100up; fibr 1000 up

    donc je dois envoyer dans le fichier total, le nombre de port total restant, nbr de port cu 100 libre, nbr de port cu 1000 libre etc..

    pour ca je recupere les valeur dans les colonnes et je les met dans une variable. et apres je fais une soustraction mais quand j'envoi le resultat dans le fichier bha j'ai que des 0 si quelqu'un sait ou ca peut provenir ca m'aiderais

    PS: Je suis un GROS debutant en shell c'est pour ca que ma facon de faire peu paraitre complexe et longue mais c'est la seule facon que je sais faire.

    ps 2: Merci de votre aide

  2. #2
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 268
    Points : 175
    Points
    175
    Par défaut
    ca me fait pareil avec ce bout de script

    #!/bin/ksh

    typeset -i tot_mts_int=0
    typeset -i tot_mts_adm=0
    typeset -i tot_final=0

    mts=mts1.csv
    rm $mts
    touch $mts
    total_port=total1.csv
    rm $total_port
    touch $total_port

    cat INVENTAIRE.csv | grep -i mon >$mts

    cat $mts |while read LIGNE
    do

    set $LIGNE
    tot_mts_int=$(($tot_mts_int+$5))
    tot_mts_adm=$(($tot_mts_adm+$7))
    tot_final=$(($tot_mts_int)-($tot_mts_adm))

    done

    echo "Nbres Int MTS" >$total_port
    echo "${tot_final}" >>$total_port

  3. #3
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 268
    Points : 175
    Points
    175
    Par défaut
    pb résolu il fallait que je lui dise quel etait le separateur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécution d'un script shell sous perl
    Par ysahel dans le forum Langage
    Réponses: 1
    Dernier message: 12/08/2012, 10h39
  2. cryptage script shell sous unix
    Par dimitris dans le forum Autres systèmes
    Réponses: 0
    Dernier message: 13/07/2010, 08h01
  3. execution d'un script shell sous php
    Par cosam dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 09/10/2009, 12h57
  4. script shell sous solaris 8
    Par tmd710 dans le forum Solaris
    Réponses: 2
    Dernier message: 27/01/2009, 10h47
  5. Script shell sous unix
    Par taroudant dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 21/11/2006, 12h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo