$PS1 does not render command-line prompt in color in a FreeBSD VM

Polytropon freebsd at edvax.de
Wed Oct 12 03:08:23 UTC 2016

On Tue, 11 Oct 2016 21:56:05 -0400, James E Keenan wrote:
> 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.

Side note: the Bourne shell (/bin/sh) is FreeBSD's default scripting
shell, but it's a poor dialog shell, that's why this task is usually
reserved for the C shell (a tcsh in fact), which is recommended for
interactive use (and not as bad as people often assume).

>  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?

Has there been a change to the shell, is the configuration file
somehow "damaged", or are you using some nonstandard $TERM setting
(or other setting in a relevant file) in that specific combination?

Hint: It helps to "diff .shrc.works .shrc.doesnot" and look for
the PS1 setting output (which there ideally should be none).

Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...

More information about the freebsd-questions mailing list