delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2005/11/22/19:52:32

X-Spam-Check-By: sourceware.org
Date: Tue, 22 Nov 2005 19:52:22 -0500 (EST)
From: Igor Pechtchanski <pechtcha AT cs DOT nyu DOT edu>
Reply-To: cygwin AT cygwin DOT com
To: Robert Body <rbody99 AT hotmail DOT com>
cc: cygwin AT cygwin DOT com
Subject: Re: escape codes in ksh "\033]0;\$PWD\007\$PWD> "
In-Reply-To: <BAY104-F23586B23992790AC1B9DA6AD550@phx.gbl>
Message-ID: <Pine.GSO.4.63.0511221945280.8033@slinky.cs.nyu.edu>
References: <BAY104-F23586B23992790AC1B9DA6AD550 AT phx DOT gbl>
MIME-Version: 1.0
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On Tue, 22 Nov 2005, Robert Body wrote:

> I have not been able to figure out how to send escape codes to ksh

KSH does not understand escape codes.  You have to embed literal special
characters into $PS1.

> I saw a syntax for ksh on
> http://www.steveshilling.pwp.blueyonder.co.uk/scripts/xtermtitle.txt
> ---------
> PS1='^[]0;${USER}@${HOST}: ${PWD}^Gksh$ '
> ---------
> where ^[ is used instead of \033 and ^G instead of \007
> but I tried 3 systems with ksh, no go, it doesn't understand escape
> characters, not with \032, not with \[\e and not with ^[ to signfy beginning
> of escape code... ksh just repeats them exactly like regular characters

In bash, you can type in the following character sequence (sans the
spaces):

P S 1 = ' Ctrl-V Esc ] 0 ; $ { U S E R } @ $ { H O S T } : Space $ { P W D } Ctrl-V Ctrl-G k s h $ Space '

To get the above prompt.  Then start ksh.

> in bash it's easy
> --------
> PS1='\[\e]0;$PWD\a\]$PWD> '        # (in title) HOST-$PWD ... $PATH>
> --------
>
> I came up with the following... needs perl, needs xterm
> but works in ksh, and bash too
> --------
> PS1=$(perl -e 'printf "\033]0;\$PWD\007\$PWD> "')
> --------

Sure, that works too.  You can use awk or sed instead of perl (which have
the advantage of being part of the default installation).

> but i just don't know how (and someone must know how) people get the
> escape codes into ksh that it works from command prompt or script with a
> one line solution (and without secondary help from something like c or
> perl code)

Both vi and emacs allow you to enter special characters literally.  Edit
your .profile (or /etc/profile), and you're all set.  The ksh-related
section of the default /etc/profile has a bug and doesn't work.

> Oh, the purpose of this escape sequence is to synchronize the title with
> PS1 to be the current directory on an xterm (but the question is about
> escape codes, not xterm ;-) )

Again, ksh does not understand escape codes.  Neither does ash.  Use
literal characters.

Igor Pechtchanski
Volunteer PDKSH maintainer for Cygwin
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha AT cs DOT nyu DOT edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor AT watson DOT ibm DOT com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski, Ph.D.
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

If there's any real truth it's that the entire multidimensional infinity
of the Universe is almost certainly being run by a bunch of maniacs. /DA

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019