Partage
  • Partager sur Facebook
  • Partager sur Twitter

Script sous LINUX j'ai besoin d'aide!!

    22 janvier 2020 à 18:12:29

    Bonjour! J'ai mal à résoudre ce script. Veuillez m'aider s'il vous plait!
    • Partager sur Facebook
    • Partager sur Twitter
      22 janvier 2020 à 19:21:37

      Bonjour, qu'est ce qui te pose probleme?

      le test du nombre d'argument?

      le test du repertoire?

      la lecture du fichier /etc/passwd?

      • Partager sur Facebook
      • Partager sur Twitter
        24 janvier 2020 à 17:13:53

        J'imagine que j'aurai besoin d'une boucle FOR dont je test si (ls -ld nom_Fichier | -d " " -f 3)

        est égal au nom_Utilisateur. Sauf que je sais pas comment implémenter tout ça vu que je viens de commencer Linux. Qu’en pensez vous ?

        • Partager sur Facebook
        • Partager sur Twitter
          24 janvier 2020 à 19:24:15

          l'usage de ls dans un script est une mauvaise pratique.

          fais une boucle sur les fichiers du répertoire (en utilisant le Remplacement de chemin (cf. le man bash)), et passe chaque fichier à stat (cf. man stat  ;) ) pour n'extraire que le nom du propriétaire, et le comparer avec test au nom de l'utilisateur indiqué.

          c'est le B A BA des scripts shell : boucler sur les fichiers d'un répertoire.

          -
          Edité par dantonq 24 janvier 2020 à 19:27:23

          • Partager sur Facebook
          • Partager sur Twitter

          Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

            28 janvier 2020 à 19:22:12

            #! /bin/bash
            if(($#!=2))
            then
                       echo “Syntaxe Error $0 dir”
                        exit 0
            fi
            if [[! -d $1 ]]
            then
                          Echo “$1 must be a directory”
                           Exit 1
            fi
            cdir=0
            files=$(ls $1)
            #loop
            For file in $files
            do
            condition=($ls -ld file | cut -d “ “ -f 3)
                        if [[ $condition == $2 ]]
                        then
                                     cdir=$((cdir +1))
                        fi
            done
                       echo "Nombre d'occurrence du $2=$cdir"

            J'ai fait tout mon effort. Veuillez me corriger cette fois!
            • Partager sur Facebook
            • Partager sur Twitter
              28 janvier 2020 à 20:28:34

              #!/bin/bash #pas d'espace
              
              if (($#!=2)) #là, il faut un espace
              then
                         echo “Syntaxe Error $0 dir”
                          exit 0
              fi
              if [[ ! -d $1 ]] #là, aussi
              then
                            Echo “$1 must be a directory”
                            exit 1 #Attention à la casse : Exit n'existe pas, c'est exit
              fi
              
              cdir=0
              files=$(ls $1) #NON, pas ls !
              #loop
              For file in $files
              do
              condition=($ls -ld file | cut -d “ “ -f 3) # NOoooN ! pas ls !
                          if [[ $condition == $2 ]]
                          then
                                       cdir=$((cdir +1))
                          fi
              done
                         echo "Nombre d'occurrence du $2=$cdir"
              
              
              • Partager sur Facebook
              • Partager sur Twitter

              Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                28 janvier 2020 à 21:28:47

                Merci beaucoup j'essayerai tout de suite de le corriger!
                • Partager sur Facebook
                • Partager sur Twitter

                Script sous LINUX j'ai besoin d'aide!!

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown