Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #15221 > unrolled thread

Comment before 'else' on CLI, does not save to history correctly

Started byAnthony Thyssen <a.thyssen@griffith.edu.au>
First post2019-07-24 01:16 +0000
Last post2019-07-24 01:16 +0000
Articles 1 — 1 participant

Back to article view | Back to gnu.bash.bug

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Comment before 'else' on CLI, does not save to history correctly Anthony Thyssen <a.thyssen@griffith.edu.au> - 2019-07-24 01:16 +0000

#15221 — Comment before 'else' on CLI, does not save to history correctly

FromAnthony Thyssen <a.thyssen@griffith.edu.au>
Date2019-07-24 01:16 +0000
SubjectComment before 'else' on CLI, does not save to history correctly
Message-ID<mailman.2123.1563931148.2688.bug-bash@gnu.org>
Version:  bash --version
GNU bash, version 4.4.23(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

OS:  Fedora 28,  Running on a Dell Latitude E7450
Standard RPM Package: bash-4.4.23-1.fc28.x86_64


if you type a multi-line if-then-else-fi  statement with a command before the else.
Bash does not add a semi-colon before the else when saving to history.

Type into command line (watch out for no-break-spaces added by mail)...


if true
then echo yes
# comment - required to activate bug
else echo no
fi

this works fine!  outputting "yes"
But if you look at the history

history|grep i\\f|tail -1

Returning...

  830  if true; then echo "yes" else echo "no"; fi

You will see the required ';' before the else is missing.
Meaning if the command is repeated from history it will go wrong.
Producing instead...

yes else echo no

If the comment was not present, the semicolon is added correctly.
Probably effects other muti-line input containing comments too.

Anthony Thyssen,  writing shell script since 1988


[toc] | [standalone]


Back to top | Article view | gnu.bash.bug


csiph-web