Advertisement
Saichovsky

bash_prompt_colorizer.sh

Jun 10th, 2024 (edited)
12
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.12 KB | None | 0 0
  1. #!/bin/bash
  2. # Tested on Debian based distros
  3.  
  4. # USR is sudo caller first or USR root
  5. USR=
  6. if [ `id -u` -eq 0 ] && [ "$SUDO_USER" != "root" ] && [ ! -z $SUDO_USER ] ; then
  7.     USR=$SUDO_USER
  8. elif [ `id -u` -ne 0 ]; then
  9.     USR=`whoami`
  10. else
  11.     USR=root
  12. fi
  13.  
  14. # Get USR's bashrc file
  15. BASHRC=`getent passwd $USR | cut -d : -f6`/.bashrc
  16. grep -sq RCol $BASHRC && echo "Settings already applied." || \
  17. {
  18.     echo "export PROMPT_COMMAND=__prompt_command  # Func to gen PS1 after CMDs
  19.  
  20.    function __prompt_command() {
  21.        local EXIT=\"\$?\"             # This needs to be first
  22.        PS1=\"\"
  23.  
  24.        local RCol='\[\e[0m\]'
  25.  
  26.        local Red='\[\e[0;31m\]'
  27.        local Gre='\[\e[0;32m\]'
  28.        local BYel='\[\e[1;33m\]'
  29.        local BBlu='\[\e[1;34m\]'
  30.        local Pur='\[\e[0;35m\]'
  31.  
  32.        if [ \$EXIT != 0 ]; then
  33.            PS1+=\"\${Red}\${EXIT}:\u\${RCol}\"      # Add red if exit code non 0
  34.        else
  35.            PS1+=\"\${Gre}\${EXIT}:\u\${RCol}\"
  36.        fi
  37.  
  38.        PS1+=\"\${RCol}@\${BBlu}\h \${Pur}\W\${BYel}\$ \${RCol}\"
  39.    }" >> $BASHRC && echo "$BASHRC has been updated"
  40. }
  41.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement