]> git.phdru.name Git - dotfiles.git/blobdiff - .shellrc
bash: Append `$SHLVL` number of `\$` to `$PS1`
[dotfiles.git] / .shellrc
index b1c2da191be8b4be1e62f3b7b1fa2b8908975ed2..5b1e1d3db39e784807906f1446974f0824843281 100644 (file)
--- a/.shellrc
+++ b/.shellrc
@@ -58,7 +58,13 @@ case "$HOME" in
 esac
 
 
-OPS1="$OPS1\\$"
+# Remove trainling \$s
+OPS1="`echo $OPS1 | sed 's/[ \\$]\+$//'`"
+# Add a trainling space
+OPS1="$OPS1 "
+# Re-add trainling \$
+for ((i=0; i<$SHLVL; i++)); do OPS1="$OPS1\\$"; done
+
 PS1="$OPS1 "
 
 
@@ -74,7 +80,7 @@ if test -n "$BASH_VERSION"; then
    has_completion() { return 0; }
    if [ -z "$BASH_COMPLETION_COMPAT_DIR" ]; then
       if [ "$SHELL" = /bin/bash ]; then
-         if [ -d /usr/share/bash-completion ]; then
+         if [ -d /usr/share/bash-completion -a -f /usr/share/bash-completion/bash_completion ]; then
             . /usr/share/bash-completion/bash_completion
             has_completion() { [ -r /usr/share/bash-completion/completions/$1 ]; }
          elif [ -f /etc/bash_completion ]; then
@@ -98,12 +104,6 @@ if test -n "$BASH_VERSION"; then
       fi
    fi
 
-   if [ -d "$HOME"/.bash_completion.d ]; then
-      for _compf in "$HOME"/.bash_completion.d/*; do
-         . $_compf
-      done
-   fi
-
    for cmd in builtin cgmem_nice command dbus-launch exec \
       killall man nice nohup pidof pidOf KillAll pgrep pkill psg pswg su sudo \
       time whence whereis which xargs; do
@@ -122,6 +122,12 @@ if test -n "$BASH_VERSION"; then
          ! has_completion $cmd && complete -o default -A hostname $cmd
    done
 
+   if [ -d "$HOME"/.bash_completion.d ]; then
+      for _compf in "$HOME"/.bash_completion.d/*; do
+         . $_compf
+      done
+   fi
+
    delegate_completion() {
       local prog programs
       prog=$1