Ecrire dans un fichier avec guillemets

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]echo "# ~/.bashrc: executed by bash(1) for non-login shells.

Note: PS1 and umask are already set in /etc/profile. You should not

need this unless you want different defaults for root.

PS1=’${debian_chroot:+($debian_chroot)}\h:\w$ ’

umask 022

You may uncomment the following lines if you want `ls’ to be colorized:

export LS_OPTIONS=’–color=auto’

eval “dircolors

alias ls='ls $LS_OPTIONS’
alias ll='ls $LS_OPTIONS -l’
alias l=‘ls $LS_OPTIONS -lA’

Some more alias to avoid making mistakes:

alias rm='rm -i’
alias cp='cp -i’
alias mv=‘mv -i’
" > /tmp/scriptTest
[/code]

Il faut mettre \ devant. Par exemple :

J’ai déja essayé et le résultat est le même

echo "
# ~/.bashrc: executed by bash(1) for non-login shells.

# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1=\'${debian_chroot:+($debian_chroot)}\h:\w\$ \'
# umask 022

# You may uncomment the following lines if you want `ls\' to be colorized:
# export LS_OPTIONS=\'--color=auto\'
# eval "`dircolors`"
alias ls=\'ls $LS_OPTIONS\'
alias ll=\'ls $LS_OPTIONS -l\'
alias l=\'ls $LS_OPTIONS -lA\'
#
# Some more alias to avoid making mistakes:
alias rm=\'rm -i\'
alias cp=\'cp -i\'
alias mv=\'mv -i\'
" > scriptTEST

Ça passe mieux comme ça ?

cat > scriptTEST <<EOF
# ~/.bashrc: executed by bash(1) for non-login shells.

# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1=\'${debian_chroot:+($debian_chroot)}\h:\w\$ \'
# umask 022

# You may uncomment the following lines if you want `ls' to be colorized:
# export LS_OPTIONS='--color=auto'
# eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
EOF

Non…
Même erreur.

Après lecture de la doc de bash :

cat > scriptTEST <<"EOF"
# ~/.bashrc: executed by bash(1) for non-login shells.

# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1=\'${debian_chroot:+($debian_chroot)}\h:\w\$ \'
# umask 022

# You may uncomment the following lines if you want `ls' to be colorized:
# export LS_OPTIONS='--color=auto'
# eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
EOF

Je te laisse jouer au jeu des 7 différences pour voir la différence entre cette version et celle de mon poste précédent pour ne pas être allé cherché dans la doc avant de redemander. :slightly_smiling:

Lol, cachottier va.
Merci ça fonctionne à merveille!