From 26ad94bedcc6a4aa3feb07ea032709bcd517ee46 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 7 Nov 2016 23:07:21 +0100 Subject: [PATCH] hush: "wait $!; echo $?" should return 127 if $! already exited It would be nice to provide bash-like "remember las exitcode" thingy, but it's a bit complex. For now, match ash and dash. Signed-off-by: Denys Vlasenko --- shell/hush.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/shell/hush.c b/shell/hush.c index b842d6eec..7683a3749 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -9636,12 +9636,13 @@ static int FAST_FUNC builtin_wait(char **argv) /* "wait $!" but last bg task has already exited. Try: * (sleep 1; exit 3) & sleep 2; echo $?; wait $!; echo $? * In bash it prints exitcode 0, then 3. + * In dash, it is 127. */ - ret = 0; /* FIXME */ - continue; + /* ret = G.last_bg_pid_exitstatus - FIXME */ + } else { + /* Example: "wait 1". mimic bash message */ + bb_error_msg("wait: pid %d is not a child of this shell", (int)pid); } - /* Example: "wait 1". mimic bash message */ - bb_error_msg("wait: pid %d is not a child of this shell", (int)pid); } else { /* ??? */ bb_perror_msg("wait %s", *argv); -- 2.25.1