Noms de fichiers avec caractères à Echapper
Bonjour,
Je suis face à un petit soucis.
Je doit traiter des fichiers via un script. Ce script reçoit en paramètre le chemin complet du fichier mais comme une chaine de caractère.
Dison que mon Script s'appelle MonScript.sh, ça va donner ça
Code:
./test.sh "/home/user/dossier1/SousDossier/[blabla]blublu ABC (encore du texte).ext"
j'ai donc la possibilité d'avoir en vrac dans la chaine de caractère : des espaces, des crochets, des parenthèses bref tout un tas de chose qui vont foutre le bazar dans mon script par la suite.
En cherchant un peut j'ai trouvé cet example pour formater correctement ma chaine de caractères avec les caractères d'échappement.
Code:
echo "file"with"quotes( and 'simple').ex" | sed 's/\([\() '\''"]\)/\\\1/g'
Quand je l'utilise dans le shell avec mes fichiers non traités ça fonctionne correctement mais impossible de l'utiliser dans mon script.
J'ai essayé ça :
Code:
1 2 3 4 5 6
| #!/bin/bash
CHEMINFICHIER=$1
CHEMINFICHIER=${echo '$CHEMINFICHIER' | sed 's/\([\() '\''"]\)/\\\1/g'}
echo "Chemin Propre $CHEMINFICHIER" |
mais j'ai ce message d'erreur
Code:
./MonScript.sh: ligne5: ${echo '$CHEMINFICHIER' | sed 's/\([\() '\''"]\)/\\\1/g'} : mauvaise substitution
du coup je ne sais plus du tout quoi faire :
-- j'ai essayé de passer par un eval sans succès
-- j'ai essayé d'insérer des caractères d'échappement pareil ça merde....
Comme je ne m'y connais pas assez pour savoir ce que je fais de mal je me tourne vers vous...
si une âme charitable pouvait m'aider se serait génial....
Merci d'avance.