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

Shell et commandes GNU Discussion :

Script factoriel et script affichage du dossier


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Par défaut Script factoriel et script affichage du dossier
    bonsoir
    j'ai besoin d'une aide s'ils vous plaient voila les 2 exercices
    Nom : IMG_3035.JPG
Affichages : 721
Taille : 217,6 Ko
    j'ai essayer de faire le premiere exercice mais ca ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    #/bin/bash
    ls -l "$1" > /dev/null
    if [ "$?" -ne 0 ] ;then
    return 1
    echo "le dosier $1 n'existe pas"
    else
    if [-d "$1" -a -r "$1" ] ;then
    ls "$1"
    elif [*-f "$1" ] ;then
    echo "$1 n'est pas un dossier"
    elif [*-d "$1" ] ;then
    echo " vous n'avez pas le droit de lire $1"
    fi
    fi
      0  0

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Bonjour,

    Citation Envoyé par man bash
    ! expression
    Vrai si expression est fausse.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.
      0  0

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,
    c'bon le premiere exercice a fonctionner si tu peux me proposer une autre reponse mieu voila ce que j'ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
      GNU nano 2.2.6               File: exe2.sh                                    
     
    #/bin/bash
    ls  "$1" > /dev/null
    if [ "$?" -ne 0 ] ;then
    return 1
    echo "le dosier $1 n'existe pas"
    else
    if [ -d "$1" -a -r "$1" ] ;then
    ls "$1"
    elif [ -f "$1" ] ;then
    echo "$1 n'est pas un dossier"
    elif [  -d "$1" -a ! -r "$1" ] ;then
    echo " vous n'avez pas le droit de lire $1"
    fi
    fi
    et une aide pour le deuxieme exercice et merci
      0  0

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    je proscris l'emploi de ls dans les scripts.

    à part ça, je commencerai par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    tester si l'argument passé au script existe
    alors
       tester si c'est un répertoire
       alors
          tester s'il est lisible
          alors
             afficher le contenu
          sinon
             dire qu'il n'est pas lisible
          finTester
    etc...
    il faut mettre tout ça dans une boucle for qui itérera sur les arguments passés aux script.

    pour l'exercice concernant la factorielle, tu dois nous proposer quelque chose.
    nous ne faisons pas les exercices.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.
      1  0

  5. #5
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Par défaut
    c'bon j'ai developper mon script tu le trouve comment maintenant mais si je donne plus q'un argument sa ne marche pas il compte pas le deuxieme argument et j'ai besoin d'une petite aide sur factorielle je sais pas d'ou commencer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #/bin/bash
    for i in "$1"
    do
            if [ "$#" -eq 0 ]
            then
                    "Manque de parametre"
                    return 1
            else
                    ls "$1" /dev/null 
                    if [ "$?" -eq 0 ]
                    then
                            if [ -d  "$1" ]
                            then
                                    if [ -r "$1" ] 
                                    then
                                            ls "$1"
                                    else
                                            echo "$1 : acces refuser"
                                    fi
                            fi
                            if [ -f "$1" ]
                            then
                                    echo "$1 n'est pas un dossier"
                            fi
     
                    else 
                            echo "ce dossier n'existe pas"
                            return 1
                    fi
            fi
    shift
    done
      0  0

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    tous les arguments d'un script sont dans $@, et non dans $1, qui est le premier argument passé au script.
    tu devrais tester le nombre d'arguments avant d'entrer dans la boucle.
    return ne fonctionne que dans les fonctions.
    shift est inutile dans une boucle for.
    si tu testes comme je l'ai montré précédemment le premier ls est inutile, ainsi que le test du retour.
    il y a d'autres cas de figures où un fichier n'est pas un répertoire (lien, fifo...); le simple test de savoir si l'argument est un répertoire suffit.

    pour la factorielle, explique-nous ce que c'est, comment ça se calcule, comment on peut "factoriser" le traitement...
    si je te montre comment faire, le prof verra tout de suite que ce n'est pas toi qui l'a fait. :/
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.
      1  0

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. Emplacement scripts et vitesse d'affichage page web
    Par Anibel dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 04/07/2013, 10h06
  2. Réponses: 4
    Dernier message: 27/03/2012, 08h00
  3. Script modification des droits sur un dossier
    Par Hurycanrana dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 03/03/2010, 10h35
  4. [AJAX] script simple AJAX PHP affichage balise div et requête mysql
    Par Invité dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 08/02/2009, 14h21
  5. [Galerie] Script permettant d'importer tout un dossier d'images en une seule fois
    Par luluptitbeur dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 24/05/2008, 11h00

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