Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] weird behavior after setting PS1 in bashrc
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Other Things Gentoo
View previous topic :: View next topic  
Author Message
vcmota
Guru
Guru


Joined: 19 Jun 2017
Posts: 367

PostPosted: Tue Apr 10, 2018 3:16 pm    Post subject: [SOLVED] weird behavior after setting PS1 in bashrc Reply with quote

I am experiencing a weird behavior just after changing PS1 for a custom setting. Following the BASH wiki page, I wrote in .bashrc the following:

Code:

~> cat .bashrc
# /etc/skel/.bashrc
#
# This file is sourced by all *interactive* bash shells on startup,
# including some apparently interactive shells such as scp and rcp
# that can't tolerate any output.  So make sure this doesn't display
# anything or bad things will happen !


# Test for an interactive shell.  There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases.
if [[ $- != *i* ]] ; then
        # Shell is non-interactive.  Be done now!
        return
fi


# Put your fun stuff here.

export PS1="\e[1;36m\]\W>\e[0m\] "


I also changed the default colors of folders and simbolic links displayed in /etc/DIR_COLORS, simply interchanging Cyan with Blue (manually interchanging 34 with 36). That is my current DIR_COLORS

Code:

~> cat /etc/DIR_COLORS
# Configuration file for dircolors, a utility to help you set the
# LS_COLORS environment variable used by GNU ls with the --color option.

# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# Copying and distribution of this file, with or without modification,
# are permitted provided the copyright notice and this notice are preserved.

# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
# slackware version of dircolors) are recognized but ignored.

# You can copy this file to .dir_colors in your $HOME directory to override
# the system defaults.

# Below are TERM entries, which can be a glob patterns, to match
# against the TERM environment variable to determine if it is colorizable.
TERM Eterm
TERM ansi
TERM *color*
TERM con[0-9]*x[0-9]*
TERM cons25
TERM console
TERM cygwin
TERM dtterm
TERM gnome
TERM hurd
TERM jfbterm
TERM konsole
TERM kterm
TERM linux
TERM linux-c
TERM mlterm
TERM putty
TERM rxvt*
TERM screen*
TERM st
TERM terminator
TERM tmux*
TERM vt100
TERM xterm*

# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
#NORMAL 00   # no color code at all
#FILE 00   # regular file: use no color at all
RESET 0      # reset to "normal" color
DIR 01;36   # directory
LINK 01;34   # symbolic link.  (If you set this to 'target' instead of a
                # numerical value, the color is as for the file pointed to.)
MULTIHARDLINK 00   # regular file with more than one link
FIFO 40;33   # pipe
SOCK 01;35   # socket
DOOR 01;35   # door
BLK 40;33;01   # block device driver
CHR 40;33;01   # character device driver
ORPHAN 01;05;37;41  # symlink to nonexistent file, or non-stat'able file ...
MISSING 01;05;37;41 # ... and the files they point to
SETUID 37;41   # file that is setuid (u+s)
SETGID 30;43   # file that is setgid (g+s)
CAPABILITY 30;41   # file with capability
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
STICKY 37;44   # dir with the sticky bit set (+t) and not other-writable

# This is for files with execute permission:
EXEC 01;32

# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')

# If you use DOS-style suffixes, you may want to uncomment the following:
#.cmd 01;32 # executables (bright green)
#.exe 01;32
#.com 01;32
#.btm 01;32
#.bat 01;32
# Or if you want to colorize scripts even if they do not have the
# executable bit actually set.
#.sh  01;32
#.csh 01;32

 # archives or compressed (bright red)
.tar 01;31
.tgz 01;31
.arc 01;31
.arj 01;31
.taz 01;31
.lha 01;31
.lz4 01;31
.lzh 01;31
.lzma 01;31
.tlz 01;31
.txz 01;31
.tzo 01;31
.t7z 01;31
.zip 01;31
.z   01;31
.Z   01;31
.dz  01;31
.gz  01;31
.lrz 01;31
.lz  01;31
.lzo 01;31
.xz  01;31
.zst 01;31
.tzst 01;31
.bz2 01;31
.bz  01;31
.tbz 01;31
.tbz2 01;31
.tz  01;31
.deb 01;31
.rpm 01;31
.jar 01;31
.war 01;31
.ear 01;31
.sar 01;31
.rar 01;31
.alz 01;31
.ace 01;31
.zoo 01;31
.cpio 01;31
.7z  01;31
.rz  01;31
.cab 01;31
.wim 01;31
.swm 01;31
.dwm 01;31
.esd 01;31

# image formats
.jpg 01;35
.jpeg 01;35
.mjpg 01;35
.mjpeg 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.pgm 01;35
.ppm 01;35
.tga 01;35
.xbm 01;35
.xpm 01;35
.tif 01;35
.tiff 01;35
.png 01;35
.svg 01;35
.svgz 01;35
.mng 01;35
.pcx 01;35
.mov 01;35
.mpg 01;35
.mpeg 01;35
.m2v 01;35
.mkv 01;35
.webm 01;35
.ogm 01;35
.mp4 01;35
.m4v 01;35
.mp4v 01;35
.vob 01;35
.qt  01;35
.nuv 01;35
.wmv 01;35
.asf 01;35
.rm  01;35
.rmvb 01;35
.flc 01;35
.avi 01;35
.fli 01;35
.flv 01;35
.gl 01;35
.dl 01;35
.xcf 01;35
.xwd 01;35
.yuv 01;35
.cgm 01;35
.emf 01;35

# https://wiki.xiph.org/MIME_Types_and_File_Extensions
.ogv 01;35
.ogx 01;35

# Text/document files
.cfg 00;32
.conf 00;32
.diff 00;32
.doc 00;32
.ini 00;32
.log 00;32
.patch 00;32
.pdf 00;32
.ps 00;32
.tex 00;32
.txt 00;32

# audio formats
.aac 00;34
.au 00;34
.flac 00;34
.m4a 00;34
.mid 00;34
.midi 00;34
.mka 00;34
.mp3 00;34
.mpc 00;34
.ogg 00;34
.ra 00;34
.wav 00;34

# https://wiki.xiph.org/MIME_Types_and_File_Extensions
.oga 00;34
.opus 00;34
.spx 00;34
.xspf 00;34



All the modifications took effect, so everything appears to work as expected. However, when I press the up key on the keyboard in order to access older commands I gave earlier, I noticed that when some of those commands show up their text don't completely go away, they keep locked in the prompt. Here is an example:

Code:

~> ls temp       ########### TYPED
temp
~> ls temp       ########### OBTAINED FROM THE UP KEY   
temp
~> ls temp     ########### OBTAINED FROM THE UP KEY
temp
~> cat /etc/resolv.conf                   ########### TYPED
# Generated by dhcpcd from wlp2s0.dhcp
nameserver xxx.xx.xx.xxx
nameserver xxx.xx.xx.xxx
# /etc/resolv.conf.tail can replace this line
~> cat /etc/resols temp     ########### OBTAINED FROM THE UP KEY
temp
~> cat /etc/resols temp     ########### OBTAINED FROM THE UP KEY
temp



The last two commands show the problem. Thank you all.


Last edited by vcmota on Wed Apr 11, 2018 2:35 am; edited 1 time in total
Back to top
View user's profile Send private message
Ant P.
Watchman
Watchman


Joined: 18 Apr 2009
Posts: 6920

PostPosted: Wed Apr 11, 2018 12:32 am    Post subject: Reply with quote

You need an opening \[ to tell bash the following chars are non-printing and don't count toward line length:
Code:
PS1='\[\e[1;36m\]\W>\[\e[0m\] '
Back to top
View user's profile Send private message
vcmota
Guru
Guru


Joined: 19 Jun 2017
Posts: 367

PostPosted: Wed Apr 11, 2018 1:43 am    Post subject: Reply with quote

Thank you very much Ant P, that worked! By the way, shouldn't this be on the wiki, on some troubleshooting subsection? For beginners like myself this ain't obvious at all. Thank you again!
Back to top
View user's profile Send private message
Ant P.
Watchman
Watchman


Joined: 18 Apr 2009
Posts: 6920

PostPosted: Wed Apr 11, 2018 2:30 am    Post subject: Reply with quote

Yeah, it had me confused the first time I went experimenting with this stuff, the answer's buried in the bash manpage. Not sure where on the wiki something like this would go...
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Other Things Gentoo All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum