Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2861 connectés 

 


Dernière réponse
Sujet : Script sh : problème avec test
max-mag merci de ton aide, c'était ça.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
max-mag merci de ton aide, c'était ça.
Pillow Heu, ce n'est pas la faute de "test" là :whistle:  
 
 
Imagine qu'il y n'a qu'un fichier toto dans /home/web/modele.
 
Tu éxecutes ton script dans /home/web/mon-nouveau-site.
 
Première itération de la boucle for : $FICHIER vaut "toto".
 
 
 
Tu testes s'il y a un dossier "toto" dans /home/web/mon-nouveau-site. Si oui, tu essayes de créer un dossier "toto" dans /home/web/mon-nouveau-site [:ciler]
 
 
Ensuite tu testes s'il y a un fichier "toto" dans /home/web/mon-nouveau-site. Si oui, tu essayes de créer un fichier "toto" dans /home/web/mon-nouveau-site [:ciler]
 
 
(je tiens à remercier publiquement l'inventeur du copié/collé : Merci :jap: )
 
 
 
Bref, ce que tu veux faire en fait, c'est tester si le fichier "toto" est un dossier dans /home/web/modele et non pas dans le dossier courant. Au passage, je te suggère d'utiliser une variable pour stocker /home/web/modele, plutôt que de de le mettre en dur comme ça.
 
 
Méfie toi des espaces aussi, dans l'état de ton script les fichiers qui en comportent dans leur nom ne seront pas gérés correctement.
max-mag Je viens d'essayer avec -e, mais cela ne fonctionne pas non plus :-(
Effectivement, je veux faire la différence entre les dossiers et les fichiers.
Sebou77 bah normalement avec -d ça devrait passé pour les dossiers
Et avec -e t'as essayé ? Mais là c'est juste pour savoir s'il existe, tu veux peut être être plus précis nan ?
max-mag Bonjour,
 
Je tente d'écrire un script sh me permettant de créer dans un répertoire copie, l'ensemble de la structure d'un répertoire modèle sous forme de lien symbolique. J'ai donc écrit cela :
 
#!/bin/bash
#Script de création récursive de liens symboliques
 
for FICHIER in `ls /home/web/modele`
do
  echo $FICHIER
 
  if test -d ${FICHIER}
  then
    mkdir $FICHIER
  fi
 
  if test -f ${FICHIER}
  then
   ln -s /home/web/modele/$FICHIER $FICHIER
  fi
 
done

 
 
Mais cela ne fonctionne pas car test -d ou test -f ne reconnaissent ni les fichiers ni les répertoires.
Comment faire ?
 
Merci de votre aide

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)