Aller au contenu

Sujets conseillés

Posté

Bonjour à tous,

je lance un appel aux spécialistes du bash.

J'ai besoin de propager une modification faite sur 2 fichiers à un ensemble de repertoire sur mon serveur. Comme il y a plus de 400 répertoire j'ai pensé faire un petit script pour automatiser la tache et ne pas y paser des heures.

Voici le script en question, faire.sh :

#!/bin/sh
for rep in *; do
if [ -d $rep ]; then
 echo $rep;
 cp -R /home/domaine/dossier/fiche1.php $rep;
 cp -R /home/domaine/dossier/fiche2.php $rep;
 cp -R /home/domaine/dossier/fiche3.php $rep;
 fi
done

Quand je lance l'éxécution du script j'ai systématiquement :

./faire.sh: line10: syntax error: unexpected end of file

J'ai beau ouvrir les yeux, je ne vois pas le problème.

Toute aide serait la bienvenue.

Merci par avance.

Cordialement,

Patrick.

Posté

Ce script marche bien chez moi...

Essaie avec:

#!/bin/sh
for rep in *
do
  if [ -d $rep ]
  then
   echo $rep;
   /bin/cp  /home/domaine/dossier/fiche[123].php $rep
  fi
done

Dan

Posté

Bonjour,

Merci pour vos réponses.

Voici le résultats des courses :

Toujours la même erreur mais ligne 12 au lieu de 10 après avoir fait les modifications proposées par Dan.

Pour répondre à NorSeb, le script est écrit avec l'éditeur VI du serveur (via Putty)

Bon ben vais je devoir me le coltiner à la main ?

Help !

Cordialement,

Patrick

Posté

Dis-moi dans quel répertoire se trouve ton script, que je jette un coup d'oeil...

Posté

Je suis qu'un boudiné des doigts !

J'ai mis un espace après l'instruction do ce qui à rpiori ne plaisait pas au shell. Voilà tout est rentré dans l'odre.

Merci à vous de votre aide. Heu tiens juste une petite dernière, vous auriez un autre éditeur à me proposer que VI ?

++

Patrick

Posté

Tout bon admin système se doit d'utiliser -et de maîtriser- "vi". :lol:

Sinon, tu as aussi "pico" sur ton serveur... un peu plus simple que "vi".

Dan

Posté (modifié)
Dis-moi dans quel répertoire se trouve ton script, que je jette un coup d'oeil...

<{POST_SNAPBACK}>

Merci de ton offre Dan (il semble que nos posts se sont croisés), en fait c'est sur un serveur chez un autre fournisseur qu'OVH (je ne le site pas pour éviter une pub maladroite)

Tout semble bien fonctionner maintenant, mais si j'ai un autre souci je ne manquerai de faire appel à tes lumières. Je te remercie beaucoup de ton offre et pour ton intérêt.

Concernant ceci :

Tout bon admin système se doit d'utiliser -et de maîtriser- "vi". laugh.gif
pour moi, il y a un mot de 3 lettres en trop, enfin pour caractériser mes aptitudes ... et tu en sais quelque chose ...

Pico qu'il me dit le monsieur, oki, je vais m'y intéresser :rolleyes:

Cordialement,

Patrick

Modifié par Adifco Référencement
Posté

Apprendre VI, c'est comme apprendre une autre langue :lol:

1° C'est un peu long

2) Il ne faut pas cesser de pratiquer

Posté
J'ai mis un espace après l'instruction do ce qui à rpiori ne plaisait pas au shell. Voilà tout est rentré dans l'odre.

Un espace ne devrait pas gêner le shell, vu qu'il n'en fait rien...

A moins que ce soit un caractère de contrôle, qui peut ne pas s'afficher... :)

Posté
J'ai vu des ; en fin de ligne.

C'est peut etre ca ...

Non plus ! Le ; est une "No-Op" (instruction "vide")

Posté
A moins que ce soit un caractère de contrôle, qui peut ne pas s'afficher... :)

<{POST_SNAPBACK}>

Salut,

je rebondis la dessus car j'ai poussé un peu plus loin, histoire de ne pas rester idiot. En fait, j'ai fait le script avec un éditeur de texte, je l'ai placé sur mon serveur (non OVH) via un client FTP et je l'ai modifié avec l'édituer VI du serveur.

Pour savoir pourquoi le script ne fonctionnait pas chez moi et pourquoi il tournait chez Dan, j'ai transféré ce script sur mon serveur OVH (distribution différente du premier) et la le miracle se produisit ...

En fait, sur mon fichier original, j'avais un vilain ^M derrière l'instruction DO, invisible sur le premier serveur (à priori représenté par un espace).

Voili voilou, ça me servira de leçon, et merci à tous de m'avoir aider.

Cordialement,

Patrick

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...