#1 Le 19/04/2011, à 15:08
- jcdc
[Résolu] Bash - Exporter sans interpréter.
Bonjour.
Voila, je suis en train de réaliser un script en Bash.
Après avoir poser plusieurs questions à l'utilisateur, il génère plusieurs autres scripts. Le soucis est que je n'arrive pas à dire à echo de ne pas interpréter son contenu. Voici un exemple de mon code :
echo "#!/bin/bash
echo "Les images provenant d'une éventuelle exécution de ce script sont effacés."
find ./images/ -name *.comp.* -delete
echo "Les images potentiellement sauvegardées sont restituées."
for file in $(find ./images/ -name *.bak.*)
do
newfile=$(echo $file | sed -e "s/.bak//g" )
mv $file $newfile
done" > toto.sh
Quelqu'un voit idée pour me dépatouiller de ce bordel?
Par avance merci.
Jcdc.
Dernière modification par jcdc (Le 19/04/2011, à 15:39)
Hors ligne
#2 Le 19/04/2011, à 15:19
- AnsuzPeorth
Re : [Résolu] Bash - Exporter sans interpréter.
Bjr,
Utilses les simple cotes
echo 'une variable non interprété $var'
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#3 Le 19/04/2011, à 15:23
- redo_fr
Re : [Résolu] Bash - Exporter sans interpréter.
Salut,
Pour ce genre de manipulations, utilises plutôt des "herescripts" et met des "anti-slash" devant tes variables
cat <<!EOF! > toto.sh
#!/bin/bash
echo "Les images provenant d'une éventuelle exécution de ce script sont effacés."
find ./images/ -name *.comp.* -delete
echo "Les images potentiellement sauvegardées sont restituées."
for file in \$(find ./images/ -name *.bak.*)
do
newfile=\$(echo \$file | sed -e "s/.bak//g")
mv \$file \$newfile
done
!EOF!
[EDIT] Resultat:
cat toto.sh
#!/bin/bash
echo "Les images provenant d'une éventuelle exécution de ce script sont effacés."
find ./images/ -name *.comp.* -delete
echo "Les images potentiellement sauvegardées sont restituées."
for file in $(find ./images/ -name *.bak.*)
do
newfile=$(echo $file | sed -e "s/.bak//g")
mv $file $newfile
done
Dernière modification par redo_fr (Le 19/04/2011, à 15:27)
Il n'y a pas de mauvais outils, il n'y a que de mauvais ouvriers
- papy -
Personnellement, je crois que faire des procès est un signe que les affaires vont mal. Je ne dis pas que Microsoft va mal, ce n'est qu'un signe, pas un indicateur...
- Linus Torvalds -
Hors ligne
#4 Le 19/04/2011, à 15:38
- jcdc
Re : [Résolu] Bash - Exporter sans interpréter.
AnsuzPeorth -> Merci pour ta proposition. C'est une chose que j'avais déjà essayé, mais j'ai des soucis avec mes find et sed. Mon echo les interprétait au lieu de les retranscrire.
redo_fr -> Ca marche du tonnerre. Il me reste plus que 2 choses à faire. Incorporer dans ce script les 200 autres lignes(j'allais pas tout mettre sur le fofo ), et une fois fait, je vais regarder ce que c'est que ces "herescripts", car je connais pas, et je n'ai rien compris a ton code. Je sais juste que ça marche.
Merci en tout cas à vous 2.
Jcdc.
Hors ligne
#5 Le 19/04/2011, à 19:56
- Watael
Re : [Résolu] Bash - Exporter sans interpréter.
Salut
en mettant EOF entre guillemets (simples ou doubles)
$ var=123
$ cat <<'EOF'
> echo "$var"
> EOF
echo "$var"
$ cat <<EOF
> echo "$var"
> EOF
echo "123"
Connected \o/
Welcome to sHell. · eval is evil.
En ligne