Script shell (bash)

widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention   -  
 amatesuran -
bonjour tout le monde ça serait pour savoir si vous faites du script shell ici car j'ai bcp de difficulte???????????
merci
Configuration: Windows XP
Internet Explorer 6.0

22 réponses

  • 1
  • 2
  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    1)ecrire un programme shell nommé "operation". Ce programme utilise deux arguments (on suppose que les deux arguments sont des entiers et le deuxième argument est nul). Le programme doit calculer et afficher la somme, la difference, la division, la multiplication et le reste de la division.
    #!/bin/sh
    
    n1=$1
    n2=$2
    
    echo "Entrez l'opération à effectuer :"
    read op
    
    case $op in
    '+')
       echo $(($1 + $2))
       ;;
    '-')
       echo $(($1 - $2))
       ;;
    '*')
       echo $(($1 * $2))
       ;;
    '/')
       echo "scale=2;$1/$2" | bc
       ;;
    *)
       echo "Opération inconnue"
       ;;
    esac
    
    7
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    4: Pour cette exercice il faut donnner le texte de commande:

    nom de la commande: cmd2
    arguments: aucun
    effet: La commande doit editer le message suivant: "Mon repertoire courant est: ...."


    Dans un terminal tape
    echo -e '#!/bin/sh\n\necho "Mon répertoire courant est : $(pwd)"' > cmd2
    ensuite pour exécution
    chmod +x cmd2 && ./cmd2
    3
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    ben a vrai dire je comprend pas trop la elle sont ou les commande ?
    parce que par exemple pour le a) fallait utiliser la commande expr


    Pourtant tu as dit dans le message 12
    ok bon ça y est j'ai trouver
    pour expr c'est
    $ a=`expr 3 + 4`
    $ echo $a
    7
    #!/bin/sh
    
    n1=$1
    n2=$2
    
    echo -e "Opérations \n"
    echo "+ addittion"
    echo "- soustraction"
    echo "* multiplication"
    echo "/ division entière"
    echo "% modulo - calculer le reste"
    echo -e "\nEntrez l'opération à effectuer sur $1 et $2\n"
    
    read op
    
    case $op in
    '+')
       expr $1 + $2
       ;;
    '-')
       expr $1 - $2
       ;;
    '*')
       expr $1 '*' $2
       ;;
    '/')
       if  [ "$2" = "0" ] 
       then
          echo "Division avec zéro"
          exit
       else
          expr $1 / $2 
       fi
       ;;
    '%')
       if  [ "$2" = "0" ] 
       then
          echo "Division avec zéro"
          exit
       else
          expr $1 % $2
       fi
       ;;
    *)
       echo "Opération inconnue"
       ;;
    esac
    3
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    ça serait pour savoir si vous faites du script shell ici car j'ai bcp de difficulte???????????

    Si tu parles de la cuisine shell, alors donne ta recette.
    Tu trouveras sûrement un shell cook :-))
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    voilà pour 3: a)
    1
  7. widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention   65
     
    y'aurais possibilité que tu m 'explique un peu???
    Merci
    1
  8. widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention   65
     
    ok merci bien et sinon pour ma question <12> (le texte des commandes)
    je pourrais avoir une tite aide aussi SVP
    juste un exemple et apres je vous montre ce que j'ai fait
    1
  9. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    et pour toutes les commandes que j'ai citer dans <12> ça marche comme ça???

    Pas tout à fait. Voilà avec declare
    #!/bin/sh
    
    declare -i res
    n1=$1
    n2=$2
    
    echo -e "Opérations \n"
    echo "+ addittion"
    echo "- soustraction"
    echo "* multiplication"
    echo "/ division entière"
    echo "% modulo - calculer le reste"
    echo -e "\nEntrez l'opération à effectuer sur $1 et $2\n"
    
    read op
    
    case $op in
    '+')
       res=$1+$2
       echo $1 + $2 = $res
       ;;
    '-')
       res=$1-$2
       echo $1 - $2 = $res
       ;;
    '*')
       res=$1'*'$2
       echo $1 '*' $2 = $res
       ;;
    '/')
       if  [ "$2" = "0" ] 
       then
          echo "Division avec zéro"
          exit
       else
          res=$1/$2 
          echo $1 / $2 = $res
       fi
       ;;
    '%')
       if  [ "$2" = "0" ] 
       then
          echo "Division avec zéro"
          exit
       else
          res=$1%$2
          echo $1 % $2 = $res
       fi
       ;;
    *)
       echo "Opération inconnue"
       ;;
    esac
    1
  10. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    et avec let
    #!/bin/sh
    
    n1=$1
    n2=$2
    
    echo -e "Opérations \n"
    echo "+ addittion"
    echo "- soustraction"
    echo "* multiplication"
    echo "/ division entière"
    echo "% modulo - calculer le reste"
    echo -e "\nEntrez l'opération à effectuer sur $1 et $2\n"
    
    read op
    
    case $op in
    '+')
       let res=$1+$2
       echo $1 + $2 = $res
       ;;
    '-')
       let res=$1-$2
       echo $1 - $2 = $res
       ;;
    '*')
       let res=$1'*'$2
       echo $1 '*' $2 = $res
       ;;
    '/')
       if  [ "$2" = "0" ] 
       then
          echo "Division avec zéro"
          exit
       else
          let res=$1/$2 
          echo $1 / $2 = $res
       fi
       ;;
    '%')
       if  [ "$2" = "0" ] 
       then
          echo "Division avec zéro"
          exit
       else
          let res=$1%$2
          echo $1 % $2 = $res
       fi
       ;;
    *)
       echo "Opération inconnue"
       ;;
    esac
    
    1
  11. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    et avec $((....))?? Tu ne lit pas mes messages.

    et

    Pour $[..] dit à ton prof que c'est la forme ancienne de $((..)) donc ça ne vaut pas la peine de gaspiller des neurones et de l'encre avec ça :-))

    echo "$1 / $2 = $(echo "scale=2;$1/$2" | bc)" je fais la division en réel

    tu peux remplacer avec

    echo "$1 / $2 = $(($1/$2))"
    1
  12. Utilisateur anonyme
     
    Salut,

    ah mais certainement,tu trouveras certainement des liens...
    Sous quel os les désires-tu?
    0
  13. widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention   65
     
    ben voila, Je ne comprend rien et j'ai des partiels lundi (de plus j'ai ete bcp absente en cours dc je n'ai pas tout ((a cause d'un accident))).
    donc voici quelques enonce et j'aurais besoin que vous me donniez le shell (SVP)

    1: a) sous le repertoire courant, afficher la liste de tous les sous repertoires.
    b) sous le repertoire courant, afficher la liste de tous les sous repertoires de chaque sous repertoire.

    2: a)sous le repertoire courant, dupliquer les fichier ordinaire osus un repertoire dont le nom est donné en argument. Traiter tous les cas d'erreur.
    b)Meme chose que a) mais on s'interresse à tous les fichier dont la taille ne depasse pas 50octets.
    c)meme chose mais fichier executable.

    3: a)Ecrire une fonction dt voici la specification:
    nom de fct°: EntierValide
    parametre: EstEntier
    effet: l'entier 0 est retourné si le parametre "EstEntier" designe un entier, sinon l'entier 1 est retourné.
    b)Ecrire une commande shell avec deux arguments. Si les deux arguments designent deux entiers alors il faut calculer et afficher les resultat des cinq operation suivant: +,-,*,/ et le reste de la division. Traiter tous les cas d'arreur.

    4: Pour cette exercice il faut donnner le texte de commande:

    nom de la commande: cmd2
    arguments: aucun
    effet: La commande doit editer le message suivant: "Mon repertoire courant est: ...."

    Je vous remerci d'avance de vos reponse, si vous pouvez me donner qq explications à cote se serait super .

    MERCI
    0
  14. widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention   65
     
    pk -e ça sert a koi
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Salut,

      man echo (extrait) :
      OPTIONS
             -n     Ne pas effectuer le saut de ligne final.
      
             -e     Interpréter les séquences de caractères précédées d'un backslash
                    '\' suivantes :
                    \a     alerte (sonnerie)
                    \b     retour en arrière d'un caractère
                    \c     supprimer le saut de ligne final
                    \f     saut de page
                    \n     saut de ligne
                    \r     retour chariot
                    \t     tabulation horizontale
                    \v     tabulation verticale
                    \\     backslash
                    \nnn   le caractère de code ASCII nnn (en octal)
      
             -E     Désactiver les interprétations des séquences spéciales.
      
      ;-))

      PS. Évite le style SMS s'il te plaît, merci ;-)
      0
    2. widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention   65
       
      ah ok merci (et desolé pour le style sms!!!)
      alors tu pourrais m'expliquer les commande
      expr, declare, let, $((...)) et $[...]

      a quoi elle servent et comment on les utilise STP
      Merci
      0
    3. ekra Messages postés 1873 Statut Membre 342 > widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour,

      $((...)) sert a l'évaluation d'expression arithmétiques (en gros ça calcule)

      let a=1+1 est la meme chose que a=$((1+1))

      apres je connais $0, $1, $2 ,$n pour récupérer le n-ieme arguement
      $# pour le nombre d'arguments
      0
    4. widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention   65 > widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention  
       
      merci beaucoup et pour expr et decare tu sait?

      mais par exemple si on me demande donner le texte du programme qui utilise la commande let ou $((...)) je doit ecrire quoi??
      merci
      0
    5. widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention   65 > widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention  
       
      ok bon ça y est j'ai trouver
      pour expr c'est
      $ a=`expr 3 + 4`
      $ echo $a
      7

      et declare c'est:
      Les fonctions peuvent s'exporter par la commande declare -fx fonction

      mais maintenant ce que je comprend c'est quand on me demande de :

      1)ecrire un programme shell nommé "operation". Ce programme utilise deux arguments (on suppose que les deux arguments sont des entiers et le deuxième argument est nul). Le programme doit calculer et afficher la somme, la difference, la division, la multiplication et le reste de la division.

      a) Donner le texte du programme qui utilise la commande expr.
      b)Donner le texte du programme qui utilise la commande declare.
      c)Donner le texte du programme qui utilise la commande let.
      d)Donner le texte du programme qui utilise la commande $((...)) ou $[...].

      SVP donner moi juste un exemple et je ferai les autres
      Je vous en supplie mes partiel sont lundi et il faut que j'assure
      SVP SVP SVP SVP
      0
  15. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Accepte les notations avec . ou ,

    10.23
    10,23
    #!/bin/sh
    
    echo "Entre un numéro réel : "
    read var
    
    if [ "$(echo $var | grep -Eo '^[0-9]+[.,][0-9]+$')" ]
    then
      echo  "$var est un nombre réel"
    fi

    0
  16. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    accepte toujours le . et la ,
    ainsi que la notation scientifique avec E et e
    10.23
    10,23
    10.23e+24
    10.23E+24
    10.23e-24
    10.23E-24
    #!/bin/sh
    
    echo "Entre un numéro réel : "
    read var
    
    if [ "$(echo $var | grep -Eo '^[+-]?[0-9]+[.,][0-9]+([Ee]([+-]?[0-9]+))?$')" ]
    then
      echo  "$var est un nombre réel"
    fi
    0
  17. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Pour exécuter
    operation.sh N1 N2
    N1 et N2 sont des nombres entiers

    Ou encore
    #!/bin/sh
    
    n1=$1
    n2=$2
    
    echo -e "Opérations \n"
    echo "+ addittion"
    echo "- soustraction"
    echo "* multiplication"
    echo "/ division"
    echo "% modulo - calculer le reste"
    echo -e "\nEntrez l'opération à effectuer sur $1 et $2\n"
    
    read op
    
    case $op in
    '+')
       echo "$1 + $2 = $(($1 + $2))"
       ;;
    '-')
       echo "$1 - $2 = $(($1 - $2))"
       ;;
    '*')
       echo "$1 * $2 = $(($1 * $2))"
       ;;
    '/')
       if  [ "$2" = "0" ] 
       then
          echo "Division avec zéro"
          exit
       else
          echo "$1 / $2 = $(echo "scale=2;$1/$2" | bc)"
       fi
       ;;
    '%')
       if  [ "$2" = "0" ] 
       then
          echo "Division avec zéro"
          exit
       else
          echo "$1 % $2 = $(($1%$2))"
       fi
       ;;
    *)
       echo "Opération inconnue"
       ;;
    esac
    0
  18. widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention   65
     
    ben a vrai dire je comprend pas trop la elle sont ou les commande ?
    parce que par exemple pour le a) fallait utiliser la commande expr
    0
  19. widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention   65
     
    ah ok merci bcp
    et pour toutes les commandes que j'ai citer dans <12> ça marche comme ça???

    merci
    0
  20. widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention   65
     
    ok merci bcp
    et avec $((....)) ou $[...] ??
    0
  21. widi70 Messages postés 646 Date d'inscription   Statut Membre Dernière intervention   65
     
    ok merci bcp de ton aide
    bon week end
    0
  • 1
  • 2