multi-line command history does not work when new terminal opened

1 view
Skip to first unread message

Hyunho Cho

unread,
Aug 16, 2020, 2:39:56 AM8/16/20
to bug-...@gnu.org
Machine: x86_64
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS: -g -O2
-fdebug-prefix-map=/build/bash-a6qmCk/bash-5.0=.
-fstack-protector-strong -Wformat -Werror=format-security -Wall
-Wno-parentheses -Wno-format-security
uname output: Linux EliteBook 5.4.0-42-generic #46-Ubuntu SMP Fri Jul
10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Machine Type: x86_64-pc-linux-gnu

Bash Version: 5.0
Patch Level: 17
Release Status: release

####################################################################


I have enabled the shell options for multi-line command history like this

shopt -s lithist
shopt -s cmdhist

and it works well in current terminal

bash$ history
8651 echo history test 1
8652 echo history test 2
8653 echo history test 3
8654 cat << EOF
111
222 # multi-line command history works well
333
EOF

8655 history

-----------------------------------------------------------------------------------

if i opened new terminal then the multi-line commands all changed to
single lines like this

bash$ history
7819 echo history test 1
7820 echo history test 2
7821 echo history test 3
7822 cat << EOF
7823 111 # the multi-line
commands changed to single lines
7824 222
7825 333
7826 EOF
7827 history

Chet Ramey

unread,
Aug 17, 2020, 10:10:39 AM8/17/20
to Hyunho Cho, bug-...@gnu.org, chet....@case.edu
When you enable `lithist', each line of a multi-line command is saved to
the history list with a trailing newline, and written to the history file
as a separate line. With the traditional readline history file format,
that makes each line a separate history entry unless the application uses
a delimiter to logically separate commands. With bash, that delimiter is
the timestamp that is controlled by HISTTIMEFORMAT.

Here are a couple of messages that explain the issue in detail:

https://lists.gnu.org/archive/html/bug-bash/2016-09/msg00112.html
https://lists.gnu.org/archive/html/bug-bash/2017-06/msg00119.html


--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU ch...@case.edu http://tiswww.cwru.edu/~chet/

Reply all
Reply to author
Forward
0 new messages