Script Sh

Résolu
Bonjour à tous,

Je suis en S3 Informatique et je dois faire un exercice.
Voilà mon code :

#!/bin/sh
if [ $# -eq 0 ]; then
echo "Vous n'avez pas passé de paramètre !"
exit 0
fi
while [ $# -ne 0 ]; do
if [ -e $1 ]; then
echo "$1 existe"
else
echo "$1 n'existe pas"
fi
shift
done

Il a un problème c'est dû aux espaces des noms de fichier.

Quelqu'un pourrait-il m'aider à l'améliorer s'il vous plaît ? Merci

2 réponses

  1. Contributeur
    Salut,

    Il a un problème c'est dû aux espaces des noms de fichier.
    S'il y a problème c'est à la saisie des paramètres par l'utilisateur, qui doit de lui même mettre des quotes autour des noms comportant des espaces.

    Le script en lui même n'a aucun moyen de prévenir les espaces dans les noms saisis.
    0
    1. Bonjour,

      Vous parlez des " " ou de ' ' ? Car " " ça ne marche pas.
      0
      1. Contributeur
        Peu importe, l'important c'est qu'elles soient quotées du moment où l'une d'entre elle comporte des espaces.
        0
      2. Contributeur
        Par contre je viens aussi de me rendre compte qu'il manquait aussi des quotes dans ton "test" :

        if [ -e "$1" ]; then 

        Sans quoi cela provoque effectivement une erreur ;-(
        0
      3. Merci beaucoup ! Grâce à vous maintenant ça fonctionne =)
        0