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 :

Syntaxe script Bash


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Par défaut Syntaxe script Bash
    Bonjour. J'ai fait un script mais je n'arrive pas à l'exécuter, j'ai les message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ./TriScript.sh: line 7: syntax error near unexpected token `if'
    ./TriScript.sh: line 7: `        if [ -d $i ]; then'
    Voilà le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #!/bin/sh
    mkdir ./RepSauvegarde
    for i in * do;
            if [ -d $i ]; then
                    echo "copie de $i dans le répertoire de sauvegarde"
                    mv -i $i ./RepSauvegarde/
            fi
    done;
    Je ne sais pas d'où ça vient, je n'arrive pas à corriger l'erreur.
    Question annexe : comment faire pour obtenir le nombre de fichiers dans un répertoir ?

  2. #2
    Expert confirmé
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Par défaut
    salut,
    le ; de ton for est pas au bon endroit : il doit être avant le do.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/sh
    mkdir ./RepSauvegarde
    for i in $(ls -1 repertoire*); do
            if [ -d $i ]; then
                 echo "Déplacement de $i dans le répertoire de sauvegarde"
                 mv -i $i ./RepSauvegarde/
            fi
    done
    si tu mets * dans la liste des cas du for, ça va déplacer tous les répertoires y compris le répertoire de sauvegarde. mets plutôt un ls ou find, ce sera mieux

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par Michaël
    salut,
    le ; de ton for est pas au bon endroit : il doit être avant le do.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/sh
    mkdir ./RepSauvegarde
    for i in $(ls -1 repertoire*); do
            if [ -d $i ]; then
                 echo "Déplacement de $i dans le répertoire de sauvegarde"
                 mv -i $i ./RepSauvegarde/
            fi
    done
    si tu mets * dans la liste des cas du for, ça va déplacer tous les répertoires y compris le répertoire de sauvegarde. mets plutôt un ls ou find, ce sera mieux
    … et cela ne marchera pas si certains fichiers ont des noms avec des espaces…

    -> "$i"

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Par défaut
    Est ce que faire référence à des répertoires en utilisant la notation de chemin relatif fonctionne dans un script shell ?
    EDIT Oui ça marche à partir du répertoire où est éxecuté le script. Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script bash "ERROR SQL syntax"
    Par papaye0 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 03/09/2014, 22h48
  2. Réponses: 3
    Dernier message: 15/10/2013, 00h30
  3. Requête POST dans un script bash
    Par desperado dans le forum Linux
    Réponses: 4
    Dernier message: 11/12/2007, 22h38
  4. Scripts bash : requêtes sql
    Par milka dans le forum Linux
    Réponses: 3
    Dernier message: 17/08/2005, 10h59
  5. Problème script Bash
    Par Sphost dans le forum Linux
    Réponses: 10
    Dernier message: 26/07/2005, 09h56

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