Script bash qui parcoure les repertoire

prdnx Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,
Voici mon script je voudrais savoir ou ce trouve l'erreur de syntaxe :

#!/bin/bash

if [ $# -ne 1 ]
then
echo Usage : $0 dossier
exit 1
elif [ -f $1 ]
then
echo "erreur : l'argument saisi n'est pas un dossier"
exit 1
for i in "$1"/*/**/***
do
if test [ -f "$i" ]
then
./projet.sh "$i"
fi
fi
done


ça me dit: ligne 18 erreur de syntaxe fin prematuré
j'aimerai savoir ou est le probleme



Merci d'avance
A voir également:

2 réponses

idiart33 Messages postés 172 Date d'inscription   Statut Membre Dernière intervention   9
 
salut !
Essaie de supprimer ta virgule dans le echo, elle n'est pas prise comme un simple caractère.
0
prdnx Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
une virgule? le premier echo ou le deuxieme?
0
UnGnU Messages postés 1158 Date d'inscription   Statut Contributeur Dernière intervention   158
 
Salut,

#!/bin/bash

if [ $# -ne 1 ]
then
echo Usage : $0 dossier
exit 1
elif [ -f $1 ]
then
echo "erreur : l'argument saisi n'est pas un dossier"
exit 1
fi
for i in "$1"/*/**/***
do
if test [ -f "$i" ]
then
./projet.sh "$i"
fi
done  

0
prdnx Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour correction. j'ai reussi à faire un script qui parcourre un repertoire donné en argument et copie tout les fichier qui s'y trouve dans le repertoire SAVE:
#!bin/bash

if [ $# -ne 1 ]
then
echo usage : $0 dossier
exit 1
elif [ -f $1 ]
then
echo " Erreur : l'argument saisi n'est pas un dossier"
exit 1
fi
for i in "$1"/*/**/***
do
cat $1/*/**/*** >> ~/SAVE/save.txt
echo "Sauvegarde réussie"
done


Seulement voila, le scripte n'etant pas récursif, il ne fonctionnera pas pour les sous-sous-sous-sous....répertoires

Je voudrai donc savoir le mettre en recursivité




ps:comment utiliser la balise code sur ce forum?
0
UnGnU Messages postés 1158 Date d'inscription   Statut Contributeur Dernière intervention   158 > prdnx Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
#!/bin/bash

shopt -s globstar

if [ $# -ne 1 ]
then
echo Usage : $0 dossier
exit 1
elif [ -f $1 ]
then
echo "erreur : l'argument saisi n'est pas un dossier"
exit 1
fi
for i in ${1}/**
do
if test [ -f "$i" ]
then
./projet.sh "$i"
fi
done


Pour les balises il y a le pictogramme <>.

Sinon :

<code sh >
#!/bin/bash

if [ $# -ne 1 ]
then
...</code>

Donne :
#!/bin/bash

if [ $# -ne 1 ]
then
...
0
prdnx Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Ah oui désolé j'ai oublier de preciser que les command cp,find, globstar et l'option -R sont interdites
0
UnGnU Messages postés 1158 Date d'inscription   Statut Contributeur Dernière intervention   158 > prdnx Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Alors il te faut refaire une boucle (une fonction en fait) pour chaque sous-répertoire trouvé, et l'appliquer tant que...
0
prdnx Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   > UnGnU Messages postés 1158 Date d'inscription   Statut Contributeur Dernière intervention  
 
oui c'est exactement ce que j'essaie de faire mais je n'arrive pas.
0