From: Oleg Broytman Date: Thu, 7 Jul 2016 23:40:28 +0000 (+0300) Subject: .profile, .shellrc: test $BASH_VERSION instead of $SHELL X-Git-Url: https://git.phdru.name/?p=dotfiles.git;a=commitdiff_plain;h=20515fecab4ad47200eff26038c6cef8e2cef271 .profile, .shellrc: test $BASH_VERSION instead of $SHELL Test $BASH_VERSION instead of $SHELL in case bash is executed as /bin/sh. --- diff --git a/.profile b/.profile index 1f6b720..9638bac 100644 --- 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 diff --git a/.shellrc b/.shellrc index 6a57008..5975ab3 100644 --- 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"