przymiarka do modyfikacji /etc/profile

Tomasz Kłoczko kloczek w rudy.mif.pg.gda.pl
Śro, 24 Lut 1999, 13:26:17 CET


Na razie jeszcze tego nie wciąfnołem do CVS.
Trochę to zrobiłem inaczej niż Marcin mi podrzucił zakładając, że dla
innych shelli też będzie trzeba dołożyć jakieś poprawki i z tego powodu
zamiast if jest case.

Zerknijcie na to może jeszcze komuś przyjdzie na myśl jakaś inna
konstrukcja poniżeszego.

Tak mi jeszcze przyszło do głowy, że w poczet konsekwencji wynikających z
przestawienia /bin/sh na posix sh wpisać będzie trzeba także i to, że w
/etc/profile.d/*.sh też będzie trzeba się trzymać zgodności z sh.

$ cvs diff -u profile
Index: profile
===================================================================
RCS file: /cvsroot/setup/etc/profile,v
retrieving revision 1.4
diff -u -r1.4 profile
--- profile     1999/02/05 23:55:19     1.4
+++ profile     1999/02/24 12:46:39
@@ -1,10 +1,9 @@
 # /etc/profile
 
 # System wide environment and startup programs
-# Functions and aliases go in /etc/bashrc
+# Functions and aliases go into the shells dependent startup files
 
 PATH="$PATH:/usr/X11R6/bin"
-PS1="\u@\h \W\\$ "
 
 if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
        umask 007
@@ -19,7 +18,43 @@
 HOSTNAME=`/bin/hostname`
 HISTSIZE=1000
 HISTFILESIZE=1000
-export PATH PS1 HOSTNAME HISTSIZE HISTFILESIZE USER LOGNAME MAIL
+
+#
+# Setup the environment for varius shells
+#
+
+case "${0#\-}" in
+  bash)
+       PS1="\u@\h \W\\$ "
+       ;;
+  ksh)
+       PS1='${LOGNAME-$USER}:`
+               if [ "$PWD" = "${PWD##$HOME}" ]; then
+                       echo $PWD;
+                else
+                        echo '~'${PWD##$HOME};
+       fi`'$PS1
+       PS2='> '
+       set -o emacs
+       bind '^I'=complete
+       #
+       # Setup some of the most basic editing functions
+       # to work properly under different termnal emulators.
+       #
+       case $TERM in
+       nxterm|xterm|xterm-color|rxvt)
+               bind '^[[H'=beginning-of-line
+               bind '^[[F'=end-of-line
+               ;;
+       linux)
+               bind '^[1~'=beginning-of-line
+               bind '^[4~'=end-of-line
+               ;;
+       esac
+       ;;
+esac
+
+export PATH PS1 PS2 HOSTNAME HISTSIZE HISTFILESIZE USER LOGNAME MAIL
 
 for i in /etc/profile.d/*.sh ; do
        if [ -x $i ]; then

Co do powyższego to jeszcze tego nie sprawdzałem. Marcin czy aby
przypadkiem w nie ma tu błędu (przepisałem żywcem z tego co podesłałeś):

+                        echo '~'${PWD##$HOME};
+                fi`'$PS1
                   ^^^^^^
kloczek
-- 
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*




Więcej informacji o liście dyskusyjnej pld-devel-pl