Usually a multi-line command gets added to the history list with
semicolons added in the requisite places, i.e:

    $ f() {
    > :
    > }
    $ fc -ln -1
    f() { :; }

However, if the final line is a comment, the semicolon is not added,
making the history item an invalid command:

    $ f() {
    > :
    > #
    > }
    $ fc -ln -1
    f() { : }

Similarly, if the final line is a command which ends in a comment, the
comment character is preserved as part of the command, again making
the resulting history item invalid:

    $ f() {
    > : #
    > }
    $ fc -ln -1
    f() { : #; }

Same is true for `for' and `while' loops, `if` and `select' statements, etc.

Reply via email to