.profile, .shellrc: test $BASH_VERSION instead of $SHELL
authorOleg Broytman <phd@phdru.name>
Thu, 7 Jul 2016 23:40:28 +0000 (02:40 +0300)
committerOleg Broytman <phd@phdru.name>
Thu, 7 Jul 2016 23:40:28 +0000 (02:40 +0300)
Test $BASH_VERSION instead of $SHELL in case bash is executed as /bin/sh.

.profile
.shellrc

index 1f6b720..9638bac 100644 (file)
--- a/.profile
+++ b/.profile
@@ -8,14 +8,24 @@
 # see /usr/share/doc/bash/examples/startup-files for examples.
 # the files are located in the bash-doc package.
 
-case "$SHELL" in
-   */*csh) SHELL=/bin/bash
-   ;;
-   # this is for bash.exe
-   *command.com | \
-      *\\bash) SHELL=//c/ubin/bash
-   ;;
-esac
+#if test -n "$ZSH_VERSION"; then
+#   zsh
+if test -n "$BASH_VERSION"; then
+   case "$SHELL" in
+      */bash) ;;
+      */*csh) SHELL=/bin/bash ;;
+      # this is for bash.exe
+      *command.com | *\\bash) SHELL=//c/ubin/bash ;;
+   esac
+#elif test -n "$KSH_VERSION"; then
+#   ksh93
+#elif test -n "$FCEDIT"; then
+#   ksh88
+#elif test -n "$PS3"; then
+#   unknown
+#else
+#   sh
+fi
 
 if [ -z "$USER" ]; then
    USER="$LOGNAME"; export USER
@@ -164,32 +174,30 @@ if [ -t 0 ] ; then
        debian_chroot="`cat /etc/debian_chroot`"
    fi
 
-   case "$SHELL" in
-      */bash)
-         # display the user, host and current working directory
-         # in the terminal title
-         case "$TERM" in
-            *rxvt*|screen*|*term*|vt100)
-               OPS1="\[\033]0;${debian_chroot:+($debian_chroot)}\u@\h:\w\007\]"
-               case "$TERM" in
-                  screen*)
-                     OPS1=${OPS1}"\[\033k${debian_chroot:+($debian_chroot)}\u@\h:\w\033\\\\\]" # Set screen/tmux caption
-                  ;;
-               esac
-            ;;
-
-            *)
-               OPS1=""
-            ;;
-         esac
-
-         OPS1=${OPS1}"${debian_chroot:+($debian_chroot)}\u@\h \W "
-         . "$ENV"
+   if test -n "$BASH_VERSION"; then
+      # display the user, host and current working directory
+      # in the terminal title
+      case "$TERM" in
+         *rxvt*|screen*|*term*|vt100)
+            OPS1="\[\033]0;${debian_chroot:+($debian_chroot)}\u@\h:\w\007\]"
+            case "$TERM" in
+               screen*)
+                  OPS1=${OPS1}"\[\033k${debian_chroot:+($debian_chroot)}\u@\h:\w\033\\\\\]" # Set screen/tmux caption
+               ;;
+            esac
          ;;
-      *)
-         OPS1="${debian_chroot:+($debian_chroot)}`/usr/bin/whoami`@`/bin/hostname -s` "
+
+         *)
+            OPS1=""
          ;;
-   esac
+      esac
+
+      OPS1=${OPS1}"${debian_chroot:+($debian_chroot)}\u@\h \W "
+      . "$ENV"
+
+   else
+      OPS1="${debian_chroot:+($debian_chroot)}`/usr/bin/whoami`@`/bin/hostname -s` "
+   fi
 
    #PROMPT_DIRTRIM=2
    export OPS1 # PROMPT_DIRTRIM
index 6a57008..5975ab3 100644 (file)
--- a/.shellrc
+++ b/.shellrc
@@ -57,8 +57,7 @@ OPS1="$OPS1\\$"
 PS1="$OPS1 "
 
 
-case "$SHELL" in
-*/bash)
+if test -n "$BASH_VERSION"; then
    [ "`type -t ls`" = alias ] && unalias ls
    [ "`type -t ll`" = alias ] && unalias ll
    [ "`type -t mc`" = alias ] && unalias mc
@@ -126,18 +125,15 @@ case "$SHELL" in
       eval "`pip completion --bash`"
       rm -rf /tmp/pip_build_"$USER"
    fi
-   ;;
 
-*/ksh)
+elif test -n "$KSH_VERSION" -o -n "$FCEDIT"; then
    back() { cd - ${1:+"$@"}; }
    clo() { clear; exit; }
    j() { jobs; }
-   ;;
 
-*/sh)
+else
    clo() { clear; exit; }
-   ;;
-esac
+fi
 
 
 # clear history, clear screen and logout
@@ -171,43 +167,41 @@ cdremote() {
    cd "`git config --get remote.$1.url`"
 }
 
-case "$SHELL" in
-   */bash)
-      # list remotes with URLs matching a regexp
-      list_remotes() {
-         GIT_REMOTES=""
-         for remote in `git remote`; do
-            if git config --get remote.$remote.url | grep -q "$1"; then
-               GIT_REMOTES="$GIT_REMOTES $remote"
-            fi
-         done
-         remote=""
-         unset remote
-      }
-
-      # define completion for cdremote - list remotes with directories as URLs
-      _cdremote_complete() {
-         local cur="${COMP_WORDS[COMP_CWORD]}";
-         list_remotes '^\(/\|\.\./\)'
-         COMPREPLY=(`compgen -W "$GIT_REMOTES" -- "$cur"`)
-         GIT_REMOTES=""
-         unset GIT_REMOTES
-      }
-
-      complete -F _cdremote_complete cdremote
-
-      # define completion for git-open - list remotes with http(s) URLs
-      _git_open() {
-         local cur="${COMP_WORDS[COMP_CWORD]}";
-         list_remotes '^http\(s\)\?://'
-         COMPREPLY=(`compgen -W "$GIT_REMOTES" -- "$cur"`)
-         GIT_REMOTES=""
-         unset GIT_REMOTES
-      }
-
-      complete -F _git_open git-open
-   ;;
-esac
+if test -n "$BASH_VERSION"; then
+   # list remotes with URLs matching a regexp
+   list_remotes() {
+      GIT_REMOTES=""
+      for remote in `git remote`; do
+         if git config --get remote.$remote.url | grep -q "$1"; then
+            GIT_REMOTES="$GIT_REMOTES $remote"
+         fi
+      done
+      remote=""
+      unset remote
+   }
+
+   # completion for cdremote - list remotes with directories as URLs
+   _cdremote_complete() {
+      local cur="${COMP_WORDS[COMP_CWORD]}";
+      list_remotes '^\(/\|\.\./\)' # (/ or ../ at the beginning)
+      COMPREPLY=(`compgen -W "$GIT_REMOTES" -- "$cur"`)
+      GIT_REMOTES=""
+      unset GIT_REMOTES
+   }
+
+   complete -F _cdremote_complete cdremote
+
+   # completion for git-open - list remotes with http(s) URLs
+   _git_open() {
+      local cur="${COMP_WORDS[COMP_CWORD]}";
+      list_remotes '^http\(s\)\?://'
+      COMPREPLY=(`compgen -W "$GIT_REMOTES" -- "$cur"`)
+      GIT_REMOTES=""
+      unset GIT_REMOTES
+   }
+
+   complete -F _git_open git-open
+fi
 
 
 include() {
@@ -225,12 +219,10 @@ include() {
 
 
 mc() {
-   case "$SHELL" in
-      */bash)
-         MC_SAVE_OPS1="$OPS1"
-         OPS1="\u@\h "
-      ;;
-   esac
+   if test -n "$BASH_VERSION"; then
+      MC_SAVE_OPS1="$OPS1"
+      OPS1="\u@\h "
+   fi
 
    if [ -n "$SLOWTERM" ]; then
       MC_SLOW="--slow"