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]
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
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
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.