$PS1 does not render command-line prompt in color in a FreeBSD VM
James E Keenan
jkeen at verizon.net
Wed Oct 12 02:56:29 UTC 2016
This question concerns display of colors in the command-line prompt on
two different FreeBSD installations.
For a couple of months I have been using VirtualBox 5.1.2 to run
FreeBSD-10.3 as a guest on an Ubuntu Linux 16.04 LTS host. When working
in this VM I have been trying to avoid Linuxisms so as to better learn
how to work in a BSD environment. One case: I'm using Bourne shell
rather than Bash as the shell for my own user. In my .shrc file, I have
this assignment for the spelling and color of my command-line prompt:
PS1="[^[[31m\W^[[0m] \$ "
... where in each of two cases the '^[' is the ESCAPE character \033.
This produces a prompt which I can verbally describe as:
open-bracket in white; basename of pwd in red; close-bracket, space,
dollar-sign, space in white
... which in the terminal looks like:
[jkeenan] $
where 'jkeenan' is in red and all the rest is in white. So far so good.
Yesterday I installed FreeBSD-11 as a VM on the same Linux host -- only
this time I switched to using VMWare to house the VM. I brought over my
.profile, .shrc, .vimrc, etc., files from the 10.3 VM to this new one.
I expected them to Just Work. However the terminal inside the VMWare
console seems to be unable to digest the codes for color in the
assignment to $PS1. That value for $PS1 is rendering as:
[[31mjkeenan[0m] $
... all rendered in white; nothing in red. The control sequences to
change from white to red and back again are simply being literally
displayed.
I should note that the VMWare console is perfectly capable of rendering
different colors. Vim gets nice colors in syntax highlighting for both
sh and perl.
Does anyone have a clue as to why $PS1 DWIMs on FreeBSD-10.3 in
VirtualBox while FreeBSD-11.0 does not in VMWare?
Thank you very much.
Jim Keenan
More information about the freebsd-questions
mailing list