Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

script shell



  1. #1
    khaoula123

    script shell


    ------

    saluut
    j'ai essayé d'ecrire un script shell qui convertis des nombre en lettre par ex :
    1 donne "un"
    2 donne "deux"
    ...................
    ................
    jusqu'a mille


    Code:
    #!/bin/sh
    echo "donnez un nombre inferieur a 1000"
    read r
    centaine='expr $r\/100'
    dizaine='expr \( $r - $centaine\*100\)\/10'
    unite='expr\( $r - $centaine\*100\)-\($dizaine\*10\)'
    case $centaine in
      0)break;;
      1)echo "cent";
        break;;
      2)if [\($dizaine -eq 0\) -a \($unite -eq 0\)] 
         then 
            echo "deux cents"
         else 
            echo"deux cent"
         fi;
         break;;
      3)if [\($dizaine -eq 0\) -a \($unite -eq 0\)] 
         then 
           echo "trois cents"
         else 
           echo"trois cent"
         fi;
         break;;
      4)if [\($dizaine -eq 0\) -a \($unite -eq 0\)] 
         then 
           echo "quatre cents"
         else
           echo"quatre cent"
         fi;
         break;;
      5)if [\($dizaine -eq 0\) -a \($unite -eq 0\)] 
         then 
           echo "cinq cents"
         else
           echo"cinq cent"
         fi;
         break;;
      6)if [\($dizaine -eq 0\) -a \($unite -eq 0\)] 
         then 
           echo "six cents"
         else 
           echo"six cent"
         fi;
         break;;
      7)if [\($dizaine -eq 0\) -a \($unite -eq 0\)] 
         then 
           echo "sept cents"
         else 
           echo"sept cent"
         fi;
         break;;
      8)if [\($dizaine -eq 0\) -a \($unite -eq 0\)] 
         then 
           echo "huit cents"
         else 
           echo"huit cent"
         fi;
         break;;
      9)if [\($dizaine -eq 0\) -a \($unite -eq 0\)] 
         then 
           echo "neuf cents"
         else 
           echo"neuf cent"
         fi;;
    esac
    case $dizaine in
      0)break;;
      1)break;;
      2)echo"vingt";
        break;;
      3)echo"trente";
        break;;
      4)echo"quarante"
        break;;
      5)echo"cinquante";
        break;;
      6)echo"soixante";
        break;;
      7)echo"soixante";
        break;;
      8)eho"quatre-vingt";
        break;;
      9)echo"quatre vingt";;
    esac
    case $unite in
      1)if [ \( $dizaine -eq 0 \) -o \( $dizaine -eq 7 \) -o \( $dizaine -o 9 \) ] 
         then echo"onze"
         else echo"un"
         fi;
         break;;
      2)if [ \( $dizaine -eq 0 \) -o \( $dizaine -eq 7 \) -o \( $dizaine -o 9 \) ] 
         then echo"douze"
         else echo"deux"
         fi;
         break;;
      3)if [ \( $dizaine -eq 0 \) -o \( $dizaine -eq 7 \) -o \( $dizaine -o 9 \) ] 
         then echo"treize"
         else echo"trois"
         fi;
         break;;
      4)if [ \( $dizaine -eq 0 \) -o \( $dizaine -eq 7 \) -o \( $dizaine -o 9 \) ] 
         then echo"quatorze"
         else echo"quatre"
         fi;
         break;;
      5)if [ \( $dizaine -eq 0 \) -o \( $dizaine -eq 7 \) -o \( $dizaine -o 9 \) ] 
         then echo"quinze"
         else echo"cinq"
         fi;
         break;;
      6)if [ \( $dizaine -eq 0 \) -o \( $dizaine -eq 7 \) -o \( $dizaine -o 9 \) ] 
         then echo"seize"
         else echo"six"
         fi;
         break;;
      7)if [ \( $dizaine -eq 0 \) -o \( $dizaine -eq 7 \) -o \( $dizaine -o 9 \) ] 
         then echo"dix-sept"
         else echo"sept"
         fi;
         break;;
      8)if [ \( $dizaine -eq 0 \) -o \( $dizaine -eq 7 \) -o \( $dizaine -o 9 \) ] 
         then echo"dix-huit"
         else echo"huit"
         fi;
         break;;
      9)if [ \( $dizaine -eq 0 \) -o \( $dizaine -eq 7 \) -o \( $dizaine -o 9 \) ] 
         then echo"dix-neuf"
         else echo"neuf"
         fi;
         break;;
    esac
    malheuresement aprés l'exécution le programme ne donne rien
    je sais pas vraiment ou il y'a le probleme
    merci

    -----
    Dernière modification par Philou67 ; 22/12/2010 à 13h29. Motif: Balise CODE + indentation

  2. #2
    Philou67

    Re : script shell

    Merci d'utiliser la balise CODE pour poster un script (icône ).
    Philou67 pour la modération.
    :'( Plus j'apprends, et plus je mesure mon ignorance

  3. #3
    danyvio

    Re : script shell

    Pour commencer intercale des echo juste derrière le calcul de centaine, dizaine et unité pour vérifier que c'est ok.
    On trouve des chercheurs qui cherchent ; on cherche des chercheurs qui trouvent !

  4. #4
    polo974

    Re : script shell

    centaine=$(( $r/100 ))
    (un simple echo $centaine aurait montré le pb)

    mais ce n'est pas aussi simple...
     Cliquez pour afficher

    version allant jusqu'à 999 999 999 et respectant l'écriture recommandée par l'académie française
    Jusqu'ici tout va bien...

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Programmation script shell ksh unix
    Par Gourou Dsecours dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 10/10/2009, 17h10
  2. shell ou script linux
    Par stegosor dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 26/03/2009, 08h44
  3. Ecriture d'un script shell
    Par ref92 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 28/09/2008, 21h44
  4. un programme sous unix ( script shell )
    Par boy611 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 2
    Dernier message: 09/08/2008, 13h39
  5. script shell texte en html
    Par macoupc dans le forum Logiciel - Software - Open Source
    Réponses: 15
    Dernier message: 29/10/2005, 20h24