In GNU Screen, Recalled bash history command displays one character position to the left of actual location
- by vergueishon
I am running Red Hat 5 32-bit (2.6.18-194.26.1.el5).
The issue is that when I recall any previous command in bash's history, the first character in the command is displayed immediately after the shell prompt, without any intervening space, likeso:
\[me@mymachine tmp]$man mysql
If I enter a Ctrl-C, and retype the command, it looks likeso:
\[me@mymachine tmp]$ man mysql
This makes recalling a command and editing it before re-entering a real pain. Basically, if I try to edit a recalled command, my changes occur one character position to the left (I believe) of what I see on the screen. It's a bit tedious to describe, and appears to only happen with commands with a large number of arguments.
UPDATE: The contents of /etc/sysconfig/bash-prompt-screen,
1 #!/bin/bash
2 echo -n $'\033'"_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"$'\033\\\\'
and the contents of /etc/bashrc,
24 screen)
25 if [ -e /etc/sysconfig/bash-prompt-screen ]; then
26 PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
27 else
28 PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"'
29 fi
30 ;;
I've disable bash-prompt-screen by renaming it--this fixed it. It's entirely possible that there is a fix to the bash-prompt-screen prompt line in the latest version of screen for RHEL 5. The error is seen under Screen version 4.00.03 (FAU) 23-Oct-06.
(I noticed an update in the queue, which is installing as I write this.)