NetBSD-Bugs archive

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

bin/46327: sh background commands have old return value



>Number:         46327
>Category:       bin
>Synopsis:       sh background commands have old return value
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Apr 12 22:10:00 +0000 2012
>Originator:     David Mandelberg
>Release:        
>Organization:
>Environment:
NetBSD [redacted] 5.99.63 NetBSD 5.99.63 (GENERIC) #2: Fri Feb  3 04:53:44 EST 
2012  [redacted]/netbsd-current/obj/sys/arch/i386/compile/GENERIC i386
>Description:
/bin/sh doesn't set $? properly when running a command in the background. It 
should set $? to 0 if the command can be run, but instead it leaves $? 
unchanged from the return value of the last command. This especially 
problematic in this case:

#!/bin/sh -e
if false; then
  :
else
  true & # aborts the script
fi
>How-To-Repeat:
# true; true & echo $?
0
# false; true & echo $?
1

>Fix:



Home | Main Index | Thread Index | Old Index