-
Notifications
You must be signed in to change notification settings - Fork 8.2k
Closed
Labels
Issue-Questionideally support can be provided via other mechanisms, but sometimes folks do open an issue to get aideally support can be provided via other mechanisms, but sometimes folks do open an issue to get aResolution-FixedThe issue is fixed.The issue is fixed.
Milestone
Description
PR #13361 missed one aspect of what is was trying to fix, namely what was originally reported in #10512:
How $? is set in an external-program call should solely depend on the process exit code, irrespective of whether there is stderr output and whether or not stderr output is redirected.
It is the latter that's still a problem, which matters primarily with respect to && and ||:
# On Unix
PS> sh -c 'ls nosuch; :' 2>$null || 'why did I get here?'
why did I get here?Steps to reproduce
# On Unix
sh -c 'ls nosuch; :' 2>$null; $? | Should -BeTrueExpected behavior
The test should succeed:
Since the exit code of the sh command is 0, $? should be $true - irrespective of the presence of stderr output, whether redirected or not.
Actual behavior
The test fails, because the presence of redirected stderr output unexpectedly set $? to `$false
Expected $true, but got $false.
Environment data
PowerShell Core 7.1.0-preview.5
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Issue-Questionideally support can be provided via other mechanisms, but sometimes folks do open an issue to get aideally support can be provided via other mechanisms, but sometimes folks do open an issue to get aResolution-FixedThe issue is fixed.The issue is fixed.