Toon posts:

[bash] te lange regel

Pagina: 1
Acties:

Verwijderd

Topicstarter
Als ik op me prompt een lange command regel intyp en ik ben aan het einde van de regel, dan gaat ie niet naar de volgende regel, maar gaat op de zelfde regel, aan het begin, weer verder, door de andere letters heen. Zie :

Afbeeldingslocatie: http://files.localdomain.nl/tmp/prompt.jpg

me prompt:

code:
1
2
3
4
5
6
7
8
9
# Set colors
CYAN="\e[36m"
GREEN="\e[32m"
YELLOW="\e[33m"
DEFAULT="\e[0m"

PS1="${YELLOW}\u${DEFAULT}@${CYAN}\h${DEFAULT}:${GREEN}\w${DEFAULT}\$ "

export PS1


Iemand die het herkend?

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Ja! Ik!
Je moet de non-printable dingen (de sequences die voor de kleurtjes zorgen dus) escapen. Zo ziet het er bij mij uit:
code:
1
 PS1='\u@\\[^[[38m\]\h\\[^[[0m\]:\w\$ '

eerst was het
code:
1
 PS1='\u@^[[38m\h^[[0m:\w\$ '

en toen had ik jouw probleem ook. \\[ en \] om je ansi-sequences heenzetten moet dus het probleem verhelpen.

code:
1
CYAN="\\[\e[36m\]"

zou in jouw geval moeten helpen denk ik.

Verwijderd

Topicstarter
Dank u ! werkt idd !

  • Wilke
  • Registratie: December 2000
  • Laatst online: 21:22
Goh! Dus DAAR ligt het aan.

Ik loop me daar al WEEEEEEEEEEEEEKEN kapot aan te ergeren (maar ben dan wel weer te lam om uit te zoeken waar het aan ligt :P )

En bedankt blaataaps!

  • Wilke
  • Registratie: December 2000
  • Laatst online: 21:22
Nou, dan nu ook mijn goed werkende prompt, met een groen $-teken als je gewone user bent, en rood # als je root bent:

code:
1
PS1="[\$(date +%H%M)] \u@\h:\w \\[\033[1;\$(if [ \`id -un\` = root ]; then echo 31; else echo 32; fi)m\]\$\\[\033[0m\] "


In deze prompt staat ook de datum, als je dat niet wil: tot aan de \u weghalen.