bash: Make `PS1` shorter and simpler
authorOleg Broytman <phd@phdru.name>
Thu, 14 May 2020 14:16:52 +0000 (17:16 +0300)
committerOleg Broytman <phd@phdru.name>
Thu, 14 May 2020 14:16:52 +0000 (17:16 +0300)
Do not repeat `$$$$`, instead display `$4`.

.profile
.shellrc

index 4e9958e..7c29d16 100644 (file)
--- a/.profile
+++ b/.profile
@@ -192,7 +192,7 @@ if [ -t 0 ] ; then
          ;;
       esac
 
-      OPS1=${OPS1}"${debian_chroot:+($debian_chroot)}\u@\h \W "
+      OPS1=${OPS1}"${debian_chroot:+($debian_chroot)}\u@\h \W \\$"
       . "$ENV"
 
    else
index aef3451..a688876 100644 (file)
--- a/.shellrc
+++ b/.shellrc
@@ -15,6 +15,8 @@ esac
 # Stop if non-interactive shell
 [ -z "$PS1" ] && return
 
+PS1="$OPS1$SHLVL "
+
 if test -n "$BASH_VERSION"; then
    # append to the history file, don't overwrite it
    shopt -s histappend
@@ -58,16 +60,6 @@ case "$HOME" in
 esac
 
 
-# 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 "
-
-
 if test -n "$BASH_VERSION"; then
    [ "`type -t ls`" = alias ] && unalias ls
    [ "`type -t ll`" = alias ] && unalias ll
@@ -344,7 +336,7 @@ include() {
 mc() {
    if test -n "$BASH_VERSION"; then
       MC_SAVE_OPS1="$OPS1"
-      OPS1="\u@\h \W "
+      OPS1="\u@\h \W \\$"
    fi
 
    if [ -n "$SLOWTERM" ]; then