Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Aug 1998 15:44:46 +0800 (CST)
From:      Peihan Wang <peihanw@mx.cei.gov.cn>
To:        freebsd-newbies@FreeBSD.ORG
Cc:        jgrosch@mooseriver.com, mhenry@white.ug.cs.usyd.edu.au
Subject:   RE: Re: PS1 (command line prompt) in .profile
Message-ID:  <Pine.BSF.3.96.980813152436.462A-100000@wph.bbs.edu.cn>

next in thread | raw e-mail | index | archive | help
>> 
>> Hello , gurus !
>> 
>> I am using bash (version: 2.01) on my 2.2.6 box.
>> I put the following line in my .profile:
>> 
>> PS1='`pwd`$ '
>> 
>> It works well in console mode, But after I start X
>> it does not take any effect in xterm. By the way,
>> I am using lesstif as my window manager. I do not
>> know what to do :-(
>>
--------------------------- Josef's Answer --------------------
>
>Read your man page. Bash uses 2 init file, .bashrc and .bash_profile.
>.bash_profile gets run when you first login. .bashrc get run for each
>term that your account/process create. So in your .bash_profile you
>would have the line 
>
>    export PS1='`pwd`$ '
>
>That should do it
>
--------------------------  Henry's Answer --------------------
>
>You need to give the -ls argument to xterm:
>
>xterm -ls
>
>This indicates that the shell in the xterm is a login shell,
>and thus it will read your .profile.
>
################################################################

Thank you very much !

I write the following trinket as a gift to all FreeBSD users.
It is very primitive and everyone can modify it for his/her
own purpose.


// file name   : my-path-prompt.cc
// last update : Aug/13/1998
// author      : Peihan Wang <peihanw@usa.net> , <peihanw@mx.cei.gov.cn>

// This program is derived from pwd.
// Sometimes when you set PS1='`pwd`$ ' in your .profile or .bashrc,
// it is very annoying that while you were doing something
// in a relatively deep directory the PATH prompt is so long
// that cause your eyes dizzy.

// So, compile this program and put it in ~/bin/ and modify your
// profile. (PS1='`my-path-prompt`$ ')

// You can modify the two consts as you wish
// or you can add command line args to make it flexible.

#include <iostream.h>
#include <unistd.h>
#include <string.h>

const int PROMPT_MAX_LENTH = 25;
const char * ADD_ON_STRING = "..|";

main ()
{
 char * current_path = NULL;
 char * p = NULL;

 if ((p = getcwd(NULL, 0)) == NULL) {
   cerr << "getcwd() error\n";
   exit(-1);
 }

 int path_lenth = strlen(p);
 int add_on_lenth = strlen(ADD_ON_STRING);
 char * trimed_path = NULL;

 current_path = new char [path_lenth + 1];
 strcpy(current_path, p);
 if (path_lenth <= PROMPT_MAX_LENTH) {
   cout << current_path;
 }
 else {
   trimed_path = new char [PROMPT_MAX_LENTH + 1];
   strcpy(trimed_path, ADD_ON_STRING);
   char * pp = current_path;
   for (int i = 0;
	i < (path_lenth - PROMPT_MAX_LENTH + add_on_lenth);
	i++) {
     pp ++;
   }
   strcat(trimed_path, pp);
   cout << trimed_path;
   delete trimed_path;
 }
 delete current_path;
 return 0;
}



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-newbies" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.980813152436.462A-100000>