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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

   Ecrire dans un fichier avec guillemets

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ecrire dans un fichier avec guillemets

n°1309771
Mc Kagan
Posté le 16-04-2012 à 14:26:22  profilanswer
 

Bonjour,
 
Dans le but d'automatiser la réinstallation de mon serveur je cherche à écrire dans le fichier .bashrc pour y ajouter les alias que j'ai crée et y ajouter la prise en charge des couleurs.
Mon problème est que ce fichier contient des guillemets. Et je me retrouve avec l'erreur: "Syntax error: Unterminated quoted string"
Donc comment faire pour écrire dans un fichier qui va contenir des guillemets?
 
A titre d’exemple, exécutez ce script chez vous:
 

Code :
  1. echo "# ~/.bashrc: executed by bash(1) for non-login shells.
  2. # Note: PS1 and umask are already set in /etc/profile. You should not
  3. # need this unless you want different defaults for root.
  4. # PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
  5. # umask 022
  6. # You may uncomment the following lines if you want `ls' to be colorized:
  7. # export LS_OPTIONS='--color=auto'
  8. # eval "`dircolors`"
  9. alias ls='ls $LS_OPTIONS'
  10. alias ll='ls $LS_OPTIONS -l'
  11. alias l='ls $LS_OPTIONS -lA'
  12. #
  13. # Some more alias to avoid making mistakes:
  14. alias rm='rm -i'
  15. alias cp='cp -i'
  16. alias mv='mv -i'
  17. " > /tmp/scriptTest


 

mood
Publicité
Posté le 16-04-2012 à 14:26:22  profilanswer
 

n°1309773
High Plain​s Drifter
Posté le 16-04-2012 à 14:43:04  profilanswer
 

Ça peut pas marcher, retour de ligne = <return> donc seule ta première ligne est prise en compte par echo.
 
Y'a pleins de solutions (genre échapper les retours à la ligne), mais le mieux dans ce cas c'est la syntaxe heredoc : http://forum.hardware.fr/hfr/OSAlt [...] m#t1274817


---------------
| < Ceci n'est pas une pipe.
n°1309794
Mc Kagan
Posté le 16-04-2012 à 18:56:55  profilanswer
 

Merci pour ton lien, c'est éxactememnt ce que je cherchais.

n°1309934
Nukolau
Posté le 17-04-2012 à 17:10:02  profilanswer
 

High Plains Drifter a écrit :

Ça peut pas marcher, retour de ligne = <return> donc seule ta première ligne est prise en compte par echo.


 
euh non... vu qu'il a ouvert des guillemets juste après le echo, tant qu'aucun guillemet n'apparaît la commande ne sera pas terminée, et il peux mettre tous les retours a la ligne qu'il veux.
 
Pour le problème énoncé donc, il suffit juste "d'échapper" les guillemets avec un \
 
le  

Code :
  1. # eval "`dircolors`"


devient

Code :
  1. # eval \"`dircolors`\"


 
 
Après il faut aussi penser a protéger tous les autres caractères spéciaux comme le $ ou les `

n°1309937
Mc Kagan
Posté le 17-04-2012 à 17:49:58  profilanswer
 

J'ai finalement trouvé une solution parfaite:

Code :
  1. cat > .bashrc <<"EOF"
  2. # ~/.bashrc: executed by bash(1) for non-login shells.
  3. # Note: PS1 and umask are already set in /etc/profile. You should not
  4. # need this unless you want different defaults for root.
  5. # PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
  6. # umask 022
  7. # You may uncomment the following lines if you want `ls' to be colorized:
  8. export LS_OPTIONS='--color=auto'
  9. eval "`dircolors`"
  10. alias ls='ls $LS_OPTIONS'
  11. alias ll='ls $LS_OPTIONS -l'
  12. alias l='ls $LS_OPTIONS -lA'
  13. #
  14. # Some more alias to avoid making mistakes:
  15. alias rm='rm -i'
  16. alias cp='cp -i'
  17. alias mv='mv -i'
  18. alias Temperature='hddtemp /dev/sda && hddtemp /dev/sdb'
  19. EOF


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

   Ecrire dans un fichier avec guillemets

 

Sujets relatifs
Partage de fichier en ligne[DEBIAN] Samba Transfert de fichier à 10Ko/sec (!)
Triple boot et système de fichierperl supression derniere ligne fichier
Rendre un fichier audio infalsifiable ... sous LinuxOpenoffice calc et fichier .csv
Corruption de fichier .PHP?Impossible d'écrire dans un dossier partagé Windows
modifier fichier dans archive cpiotraitement de fichier avec AWK
Plus de sujets relatifs à : Ecrire dans un fichier avec guillemets


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