Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cours Linux : c'est parti !

    14 janvier 2019 à 2:26:20

    Salut

    svp j' ai ecrit un script et il fonctionne, 

    #!/bin/bash
    
    
    if [  $# -ge 1 ]; then 
    for fichier in $*   
    do
          mv $fichier "$fichier-old"
    done
    else 
        read -p 'enter le nom du dossier ou du fichier à renommer:' nom
          while [ -z $nom ] || ![ -e $nom ]             # voila la ligne 11
           do
               read -p 'enter le nom du dossier ou du fichier à renommer:' nom
              done
            if [ -d $nom ] || [ -f $nom ]; then
                   mv $nom "$nom-old"
                 else 
                    read -p 'enter le nom du dossier ou du fichier à renommer:' nom
             fi
          
    fi


    le probleme c'est qu'il me donne une message comme quoi j'ai commi une erreur :"commamd not found"

    ./variables.sh: line 11: ![: command not found
    


    j'ai fait une petit recherche sur PATH mais jarrive pas a traiter le probleme de cette  ![ ...
    Mercii

    -
    Edité par IshakAl-Hazimi 14 janvier 2019 à 2:28:24

    • Partager sur Facebook
    • Partager sur Twitter
      15 janvier 2019 à 11:43:48

      #!/bin/bash
      # Déroulement du script : 1 on regarde s'il y a un paramètre, si oui on passe à l'étape 2 sinon on en met un qui sera faux et on passe à l'etape 2
      # 2 On va vérifier si la saisie est bonne, si ls donne un code erreur c'est qu'il faut inviter l'utilisateur a saisir  un nom correct, tant qu'ls donnera un code 2 on boucle, dès qu'ls indique que c'est bon on break la boucle
      # 3 On est sur de la saisie, on liste les fichiers du répertoire courant et on renomme en ajoutant -old à la fin
      #====================================================================================================================
      #====================================ETAPE 2: Vérifier si ce fichier existe==========================================
      #====================================================================================================================
      
      verif() # Pour être appelé je dois la mettre en amont
      {
      while true
      do
          if ls $fichier 2>/dev/null
          then
              break
          else
              read -p "Merci de saisir le nom du fichier à rennommer:" fichier
          fi
      done
      
      }
      #====================================================================================================================
      #======================================ETAPE 1: TRAITER LE $1 ========================================================
      #====================================================================================================================
      
      if [ -z $1 ]
      then
          fichier="azertyuiopoiuytrsxcfgh" # Je veux créer une erreur pour que la fonction verif me demande de sélectionner
          verif # ETAPE 2: Vérifier si ce fichier existe
      else
          fichier=$1 # Un fichier en paramètre ou bien le joker
          verif # ETAPE 2: Vérifier la saisie est bonne
      fi
      
      
      #====================================================================================================================
      #========================================ETAPE 3: RENOMMER===========================================================
      #====================================================================================================================
      
      # A ce stade on est sûr que $nom est une valeur juste
      for nom in $*
      do
          nomold=$(echo "$nom-old")
          mv $nom $nomold
      done



      Je me suis permis d'en refaire un qui semble correspondre à ce que tu attends. Je me suis confronté à un problème identique à toi. Mais en relisant le cours, ou un autre, j'ai appris qu'en fait bash vérifie le signal de sortie. Du coup tu peux lancer une commande avec une redirection vers /dev/null pour la rendre muette mais te servir d'elle comme test. Exemple ls truc => si truc existe sortie standard 1 sinon sortie 2.
      Par contre si quelqu'un connaît la solution pour résoudre ton souci je suis aussi preneur. Pour comprendre.
      En attendant je t'en ai fait un "a ma sauce", commenté, mais si tu a besoin de plus d'infos n'hésite pas.
      Petite remarque, tu fais beaucoup de répétitions. Je t'invite à jeter un œil aux fonctions. Très pratique pour ne pas se répéter et gagner en lisibilité.
      En espérant t'avoir été utile, entre débutants faut s'entre-aider ;)

      -
      Edité par Sébastien B. 15 janvier 2019 à 11:56:20

      • Partager sur Facebook
      • Partager sur Twitter
        15 janvier 2019 à 22:43:54

        IshakAl-Hazimi a écrit:

        svp j' ai ecrit un script et il fonctionne, 


        le probleme c'est qu'il me donne une message comme quoi j'ai commis une erreur :"commamd not found"

        S'il y a une erreur, alors il ne fonctionne pas ;)

        IshakAl-Hazimi a écrit:

        ./variables.sh: line 11: ![: command not found
        

        L'erreur est assez explicit: ![ n'existe pas. Et Bash a raison!

        Ce que tu souhaites faire est:

        Tant que variable FOO est vide ou null OU variable FOO n'est pas un fichier
        FAIRE bar
        Fin Tant que

        La négation d'une condition en Bash ce n'est pas !condition mais ! condition. C'est une histoire d'espace... ^^

        En fait [ TEST ] est un synonyme de la commande test TEST. while et if interprètent le résultat (le retour de la commande test): vraie (0) ou faux (1).

        On peut également inclure la négation dans le test: [ ! TEST ]

        PS:

        On préférera "$@" à  "$*" dans la plupart des cas. Sinon tu auras de drôles de surprises quand tu voudras modifier le nom de fichier contenant un espace par exemple.

        C'est une question d'expansion, lit le manuel de Bash si tu es curieux.

        -
        Edité par KoaTao 15 janvier 2019 à 23:43:42

        • Partager sur Facebook
        • Partager sur Twitter
          19 janvier 2019 à 10:30:50

          Bonjour, 

          J'ai terminé ce cours et j'ai fait le script demandé. 

          Malheureusement 2 /3 des classmates m'ont donné une mauvaise note et je ne peux avoir le certificat. 

          j'ai bien fait le script. il marche bien. le premier a commenté que j'ai fait des fautes d'orthographe dans les commentaire et a arrondi la note à 5/10. le deuxième a commenté que je n'ai pas rendu le script exécutable ( normalement je l'ai fait et c'est lui qui doit le faire sur son système pour pouvoir l'utiliser : son compte utilisateur pas le mien) et donc a arondi la note à 5/10. 
          Le premier a donné une note de 8/10

          Je trouve cela injuste. !! notant que ni les fautes d'orthographes ni le chmod +x n'est demandé dans le barème. 

          Avez vous des solutions 

          Merci à vous

          • Partager sur Facebook
          • Partager sur Twitter
            19 janvier 2019 à 11:51:57

            Bonjour,

            J'ai eu un souci similaire, un élève n'a pas été capable de le lancer, un autre a oublié de noter (ça met ? et ça compte 0 ^^), etc.

            PAS DE PROBLÈME !! :)

            Va dans tes mails, tu aura reçu une notification pour t'informer que tu a reçu tes notes. Tu y trouvera un lien pour demander à représenter ton travail.

            Par contre, sans mauvaise pensée, retravaille le script, vérifie l’orthographe, abuse des commentaires... bref, fais comme si ton lecteur avait le QI d'une huître et qu'il ne puisse rien te reprocher... pour info j'ai eu 8/10 parce-que "c'est top mais lister le contenu du dossier avec ls *$1* c'est un peu trop je trouve"

            Oui oui, en gros, j'en ai fait trop, j'aurais dû faire une simple fonction au lieux de m'amuser à faire plus. Je te rassure, je suis sur le html/css et c'est pareil. N'en tien pas compte, amuse-toi, no-limit et commente un max pour nos amies le huitres XD

            si tu n'a pas de mail, envois ta demande ici: hello@openclassrooms.com

            Bonne continuation

            -
            Edité par Sébastien B. 19 janvier 2019 à 11:55:26

            • Partager sur Facebook
            • Partager sur Twitter
              20 janvier 2019 à 14:26:46

              Bonjour, je commence en script Bash et j'aimerai avoir votre aide.

              Je suis sous Debian 9

              (Je fais deux ou plusieurs variables pour déterminer le chemin pour tester si l'arborescence existe et si non le script la crée) 

              dossier_log=/var/log
              fichier_log=$dossier_log/fichier.log

              echo "Exécution de la commande le $date à $heure" >> $fichier_log

              Mon problème est que souvent j'ai un message d'erreur qui me dit que la redirection est ambigüe.

              Je vous remercie.

              -
              Edité par Cartonton 20 janvier 2019 à 14:59:14

              • Partager sur Facebook
              • Partager sur Twitter
                20 janvier 2019 à 17:32:28

                Cartonton a écrit:

                echo "Exécution de la commande le $date à $heure" >> $fichier_log

                Mon problème est que souvent j'ai un message d'erreur qui me dit que la redirection est ambigüe.


                Si tu ne veut pas que les erreurs s'affichent dans ton fichier.log, tu peut rediriger les erreurs de cette façon :

                echo "Exécution de la commande le $date à $heure" >> $fichier_log 2>/dev/null

                Ce sujet est traité dans le cours Linux.

                Bonne continuation.

                • Partager sur Facebook
                • Partager sur Twitter
                  22 janvier 2019 à 17:31:56

                  Mateo21 a écrit:

                  Bonjour !

                  J'ouvre ce sujet pour tous ceux qui viennent de démarrer le cours Linux : http://fr.openclassrooms.com/informatique/cours/reprenez-le-controle-a-l-aide-de-linux

                  En 5 parties, ce cours comprend des activités et quiz au fur et à mesure de votre apprentissage. Le plus gros travail attendu est en 5ème partie avec l'activité qui consiste à réaliser des statistiques avec un script Bash.

                  En attendant, si vous avez des questions sur le cours, n'hésitez pas à les poser ici ! Profitez-en pour vous entraider si vous avez déjà un peu de connaissances en Linux. :)

                  Bon apprentissage !



                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 février 2019 à 23:11:55

                    salut,

                    je suis a la partie tp 5 sur la formation de linux et je cale sur le 2 parametres. avez vous des idées qui pourraient convenir.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      25 février 2019 à 13:34:13

                      Bonjour,

                      Pour le secon paramètre je me suis amusé à faire un autre programme. Puis J'ai fait $1 = nom_fichier ou programme_1 ou programme_2. Sinon, avec l'exercice de base, pourquoi ne pas changer la longueur? ou un filtre? ou enregistrer le résultat? etc...

                      Pour avoir eu les trois corrigés sous la main je déplore le manque d’imagination qu'ils ont eu et l'absence totale d’interaction. Une erreur? pas de demande de saisie, le script s'arrête, et aucune flexibilité...

                      J'ai aussi fait une page de type man avec -h ou --help ;)

                      Voila, je ne suis pas un expert, loin de là mais si j'ai un conseil a te donner: Amuse-toi ! Imagine ce que tu aimerais avoir et va sur google chercher les outils qui te manquent ;)

                      • Partager sur Facebook
                      • Partager sur Twitter
                        26 février 2019 à 0:14:54

                        Je suis le cours Linux sur la partie où on utilise la console, j'ai installé Ubuntu 18.04.2 LTS.

                        Ctrl+Alt+F1 ne me permet pas de lancer la console en plein écran.

                        La commande "commande parametres" ou autres ne fonctionnent pas. Help!

                        -
                        Edité par Wilwayard 26 février 2019 à 0:18:07

                        • Partager sur Facebook
                        • Partager sur Twitter
                          26 février 2019 à 1:04:56

                          Pour le raccourci clavier, je ne sais pas, par contre les commandes c'est normal, ce sont juste des exemples.

                          Commande n'est pas un vrai nom de commande. Regarde en bas de ta capture, ils présente une vraie commande : ls.

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Blond, bouclé, toujours le sourire aux lèvres...

                            26 février 2019 à 9:20:52

                            salut,

                            je me suis inspiré de ce programme pour faire le miens.

                            j'en laisse la trace pr aider les debutants

                            https://github.com/himuraxp/langstat/blob/master/langstat.sh

                            j'espere que la corrections ne mettra pas 1 semaine...

                            • Partager sur Facebook
                            • Partager sur Twitter
                              26 février 2019 à 11:11:58

                              Ah d'accord ce sont des exemples ! Merci ! 

                              LoupSolitaire a écrit:

                              Pour le raccourci clavier, je ne sais pas, par contre les commandes c'est normal, ce sont juste des exemples.

                              Commande n'est pas un vrai nom de commande. Regarde en bas de ta capture, ils présente une vraie commande : ls.



                              • Partager sur Facebook
                              • Partager sur Twitter
                                26 février 2019 à 11:24:13

                                Wilwayard a écrit:

                                Je suis le cours Linux sur la partie où on utilise la console, j'ai installé Ubuntu 18.04.2 LTS.

                                Ctrl+Alt+F1 ne me permet pas de lancer la console en plein écran.

                                La commande "commande parametres" ou autres ne fonctionnent pas. Help!

                                [ j'ai coupé ]

                                -
                                Edité par Wilwayard il y a environ 10 heures

                                Bonjour Wilwayard,

                                Ce qui est génial sous Linux c'est que dans 95% des cas tu à la solution sur internet et facilement trouvable.

                                Va voir sur https://doc.ubuntu-fr.org/console , il y a généralement la réponse...

                                "À partir de 17.04, sur les systèmes avec GDM (les variantes avec GNOME Shell donc), la session graphique (Xorg ou Wayland) se lance par dessus la 1ère console (et s'accède donc en faisant Ctrl+Alt+F1), et seules les consoles 2 à 6 restent accessibles, rien n'étant normalement présent à partir de Ctrl+Alt+F7.

                                Plusieurs sessions graphiques peuvent être lancées en parallèle, notamment si vous connectez 2 utilisateurs simultanément, donc n'hésitez pas à tester toutes les combinaisons jusqu'à Ctrl+Alt+F6 si besoin."

                                Du coup tu a tas réponse, avant Ctrl+Alt+F1 permettait de lancer le "terminal 1 plein écran" et Ctrl+Alt+F7 de revenir en graphique. Maintenant Ctrl+Alt+F1 permet le retour en graphique donc tu ne vois rien si tu y est déjà !

                                Et pour les exemples de commande tout est dit, c'est juste un exemple, remplace commande par ls et paramètre par -a et tu a 

                                ls -a

                                ls ou une autre on est bien d'accord ;)

                                Si tu débutes sache qu'il y a souvent un partenariat GNU-Linux auprès de la FabLab la plus proche pour trouver d'autres motivés du libre.

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  26 février 2019 à 11:29:19

                                  D'accord merci ! J'ai décidé de passer à Linux !  Puis ensuite je reprendrai mes cours html5/css3. Je partage également ce lien si ça peut aider certains https://doc.ubuntu-fr.org/tutoriel/console_commandes_de_base

                                  Merci pour ta réponse !

                                  -
                                  Edité par Wilwayard 26 février 2019 à 11:31:43

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    27 février 2019 à 3:10:18

                                    Boujour,

                                    il m'est impossible de valider le quiz après avoir coché chaque réponse. j'ai supprimé les données de navigation.Rien n'y fait.

                                    Je fais comment svp ?

                                    Merci :)

                                    EDIT : cela marche avec la désactivation de uBlock !

                                    -
                                    Edité par Exomars 27 février 2019 à 17:45:27

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      1 mars 2019 à 7:33:24

                                      Wilwayard a écrit:

                                      Je suis le cours Linux sur la partie où on utilise la console, j'ai installé Ubuntu 18.04.2 LTS.

                                      Ctrl+Alt+F1 ne me permet pas de lancer la console en plein écran.

                                      La commande "commande parametres" ou autres ne fonctionnent pas. Help!

                                      -
                                      Edité par Wilwayard 26 février 2019 à 0:18:07



                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Administrateur Systèmes et réseaux informatiques

                                        8 avril 2019 à 16:26:39

                                        Merci pour ce forums

                                        -
                                        Edité par TfkFreedom 9 avril 2019 à 12:26:24

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Cours Linux : c'est parti !

                                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                        • Editeur
                                        • Markdown