[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

"fc" builtin exits with unexpected status

From: Chris Marusich
Subject: "fc" builtin exits with unexpected status
Date: Sun, 15 Nov 2015 19:55:33 -0800


I like to set up my PS1 to show the exit status of the last command I
ran. I've noticed that this doesn't seem to work as expected when I
use the "fc" builtin.  When I do the following, the final exit status
appears to be reported as "1", even though true always exits with
status 0.

$ export PS1='[$?] \$ '
[0] $ false
[1] $ true
[0] $ fc
[1] $

To be clear, after invoking fc, I type in the command "true" on a
single line, save, and exit my editor. To rule out the possibility
that the editor was somehow related, I tried this with both emacs and
vim (by setting the EDITOR environment variable), and the unexpected
behavior occurs the same in both cases. The problem also occurs
regardless of whether I use the "true" builtin or the "true" program
(e.g., /bin/true).

The help for the "fc" builtin says that it "returns success or status
of executed command; non-zero if an error occurs." Based on that,
here's what I expected to see (but did not):

$ export PS1='[$?] \$ '
[0] $ false
[1] $ true
[0] $ fc
[0] $

This problem has been confirmed by two others (izabera and
annihilannic) in the Freenode #bash IRC chat room. We have confirmed
that the following bash versions exhibit this unexpected behavior:

- 4.3.39(1)-release, on a GuixSD system
- 4.2.46(1)-release, on a CentOS 7 system
- 4.3.42
- izabera also confirmed that the unexpected behavior occurs "in the
devel", which I presume means the latest development branch of GNU

I hope this is enough information to help figure out what the problem
is and fix it.

Thank you,
Chris Marusich

reply via email to

[Prev in Thread] Current Thread [Next in Thread]