Après une longue pause, j'ai envie de me remettre à Linux, alors pour commencer, j'utilise Cygwin, et j'ai resorti un petit bashrc maison qui marchait très bien (mais ce souvenir doit être erroné, ça doit être une autre version que j'ai perdu...) toujours est t'il qu'il ne fonctionne pas, je supprime les parties les une après les autres dans des ordres différents, ça plante toujours, impossible d'identifier la ligne qui pose problème vraiment... si quelqu'un à une idée ?
if [ "$PS1" != "" ];
then
cd e:
PS1='\n\n\[\033[01;40;32m\]\u@\h \[\033[01;40;31m\]\A \[\033[01;31m\][\[\033[01;34m\]\W\[\033[01;31m\]]\[\033[00m\]\$'
#PS1='\n\n\[\033[01;40;32m\]\u@\h \[\033[01;31m\][\[\033[01;34m\]\W\[\033[01;31m\]]\[\033[00m\]\$'
#PS1='\n\n$WHOAMI@$HOSTNAME [\W] :'
PS2='Prog. level: '
if [ -f "$HOME/.dircolors" ] ; then
eval $(dircolors -b $HOME/.dircolors)
fi
export HOSTNAME=`hostname`
export WHOAMI=`whoami`
export LC_TYPE=iso_8859_1
export CVSROOT=:ext:rouaix@jaguar.emi.u-bordeaux.fr:/CVSROOT
export CVS_RSH=ssh
TERMINAL=`tty`
ignoreeof=4
history_control=ignoredups
HISTSIZE=50
MAILCHECK=60
alias l=`ls -CF`
alias la=`ls -a --color`
alias ls=`ls --color`
alias m=`more`
alias d=`display`
alias rm=`rm -i`
clean()
{
rm -f \#* .*~ *~ *.idx *.idx *.log *.out *.toc *.aux *.dvi *.bak *.mx1 *.mx2 Thumbs.db
rm -f core*
}
display ()
{
if [ $# -eq 1 ]
then
export DISPLAY=$1":0.0"
else
echo "usage: display nom-de-terminal"
fi
}
fi
Je vous remercie par avance, je sais que c'est pas la fin du monde un bashrc qui marche pas, mais bon, si j'évite toutes les difficultés, je progresserais jamais !
Willy
# Erreurs ?
Posté par JJD . Évalué à 3.
Ça veut dire quoi que ton bashrc plante ?
Est-ce que tu as des messages d'erreurs qui s'affichent ?
Si oui, quelles sont ces erreurs ?
A vu de nez, les seules choses qui me paraissent litigieuses sont :
- "cd e:" (je n'ai pas utilisé cygwin depuis longtemps, et je ne sais pas si cette syntaxe fonctionne : tu dois pouvoir remplacer par cd /cygdrive/e)
- les backquotes (`) utilisées dans la définition des alias au lieu de simples (') ou doubles(") quotes
mais j'ai peut être raté quelque chose.
A+
JJD
# chez moi
Posté par NeoX . Évalué à 1.
j'ai executer avec bash et ...
il ne se passe pas grand chose et c'est finalement normal car le PS1 est deja definit.
et dans ton programme tout est conditionné par l'existence de PS1.
dans ce qui me semble etre ce que tu veux faire j'aurais mis
[^] # ben ça alors !
Posté par Naeco . Évalué à 1.
'ash: /home/Willy/.bashrc: line 36: syntax error near unexpected token `
'ash: /home/Willy/.bashrc: line 36: ` clean()
le coup du "cd e" bas, même sans ça , ça marche pas. Pour ce qui est du if, ok, mais ça n'explique pas l'erreur de syntaxe.
Pour les quotes, en fait, c'était déjà des ", et j'ai fini par essayer un autre délimiteur me disant que ça venait peut être de là...
John Doe, tu n'as pas d'erreur de syntaxe chez toi ? !
[^] # Re: ben ça alors !
Posté par jo daille (site web personnel) . Évalué à 1.
Ca sent le problème d'encodage ou plutôt celui du retour à la ligne Windows.
Essaies de "réécrire" ton fichier avec un editeur sous ton linux.
[^] # Re: ben ça alors !
Posté par Naeco . Évalué à 1.
Willy
[^] # Re: ben ça alors !
Posté par NeoX . Évalué à 1.
mon_prompt$bash tonscript.sh
2°) dans ton exemple il semblerait que ce soit ash et non pas bash qui soit utilisé
3°) erreur ligne 36
comme dit plus haut, les alias sont à definir avec ' (celui du 4)et non pas ` (celui du 7)
enfin, voir le 2°) qui explique peut-etre pourquoi le clean() n'est pas reconnu
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.