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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Résolu] Bash - Exporter sans interpréter.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Bash - Exporter sans interpréter.

n°1274794
jcdc
Posté le 19-04-2011 à 14:59:35  profilanswer
 

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 soucsi est que je n'arrive pas à dire à echo de ne pas interpréter son contenu. Voici un exemple de mon code :  

Code :
  1. echo "#!/bin/bash
  2.   echo "Les images provenant d'une éventuelle éxécution de ce script sont effacés."
  3.   find ./images/ -name *.comp.* -delete
  4.   echo "Les images potentiellement sauvegardées sont restituées."
  5.   for file in $(find ./images/ -name *.bak.*)
  6.   do
  7.     newfile=$(echo $file | sed -e "s/.bak//g" )
  8.     mv $file $newfile
  9.   done
  10. " > toto.sh


Si quelqu'un à une idée, je suis plus que preneur.
 
Merci.


Message édité par jcdc le 19-04-2011 à 23:06:22
mood
Publicité
Posté le 19-04-2011 à 14:59:35  profilanswer
 

n°1274798
slywalker
Posté le 19-04-2011 à 15:17:00  profilanswer
 

je ferai ça moi plutôt (je sais, c'est pas beau) :
 

Code :
  1. echo -E '#!/bin/bash' > toto.sh
  2. echo -E "echo 'Les images provenant d'une éventuelle éxécution de ce script sont effacés.'" >> toto.sh
  3. echo -E "find ./images/ -name *.comp.* -delete" >> toto.sh
  4. echo -E "echo 'Les images potentiellement sauvegardées sont restituées.'" >> toto.sh
  5. echo -E 'for file in $(find ./images/ -name *.bak.*)' >> toto.sh
  6. echo -E "do" >> toto.sh
  7. echo -E '    newfile=$(echo $file | sed -e "s/.bak//g" )' >> toto.sh
  8. echo -E '    mv $file $newfile' >> toto.sh
  9. echo -E "done" >> toto.sh

n°1274800
jcdc
Posté le 19-04-2011 à 15:32:18  profilanswer
 

Merci pour ton idée. Je vais je pense commencer par ça en attendant de trouver la raison de mon soucis. Marre de tourner en rond.

n°1274812
bardiel
Debian powa !
Posté le 19-04-2011 à 18:10:17  profilanswer
 

Citation :

echo "#!/bin/bash
echo "


En gros tu l'ouvres et tu la fermes :whistle:  
 
Remplace donc ton premier " par un '
Et le dernier " par un '
 
Sinon, remplace tous les sauts de ligne par des ; et en mettant tout sur une seule ligne dans ton code.


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°1274817
High Plain​s Drifter
Posté le 19-04-2011 à 19:02:43  profilanswer
 

Généralement quand on fait ce genre de truc on utilise plutôt la syntaxe heredoc :
 


> toto.sh << "SCRIPTEND"
#!/bin/bash
echo "Les images provenant d'une éventuelle éxé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
SCRIPTEND


 
Et pour en revenir au sujet du topic et contrairement au comportement habituel de bash, en heredoc les doubles guillemets autour de "SCRIPTEND" dans cet exemple servent désactiver la substitution des variables.


Message édité par High Plains Drifter le 19-04-2011 à 19:20:38

---------------
| < Ceci n'est pas une pipe.
n°1274820
slywalker
Posté le 19-04-2011 à 19:53:10  profilanswer
 

Cool, je viens de découvrir un truc là  :)  
 
Merci High Plains Drifter de partager ton savoir avec nous  :jap:

n°1274839
jcdc
Posté le 19-04-2011 à 23:05:47  profilanswer
 

Et ça marche parfaitement chez moi. Merci beaucoup.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Résolu] Bash - Exporter sans interpréter.

 

Sujets relatifs
[BASH] Existence de fichiers par extension[Bash] Modifier une partie d'une variable mais pas tout !!
Aide pour script bash[bash] tester si une variable (multivaluée) est vide
[BASH] Récupérer un morceau de variable...[BASH] - Variables et substitution -Resolu
[Linux - Bash] organiser un groupe de lettres par ordre ALPHA[REGLE] bash: ./jext: Permission non accordée
[bash-expect] Redirection de port automatique avec SSH 
Plus de sujets relatifs à : [Résolu] Bash - Exporter sans interpréter.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR