View Issue Details

IDProjectCategoryView StatusLast Update
00005211003.1(2008)/Issue 7Shell and Utilitiespublic2019-06-10 08:55
Reportergeoffclare Assigned Toajosey  
PrioritynormalSeverityObjectionTypeError
Status ClosedResolutionAccepted 
NameGeoff Clare
OrganizationThe Open Group
User Reference
Section2.9.2 Pipelines
Page Number2318
Line Number73179
Interp StatusApproved
Final Accepted Textsee 0000521:0001082
Summary0000521: Behaviour of !(command) should not be specified
DescriptionCurrently section 2.9.2, in combination with the tokenisation rules
and grammar, requires that !(command) is treated as a pipeline
beginning with the reserved word ! and containing a subshell command.

However, in ksh88 this was treated as a negated pathname expansion
!(pattern), not a negated subshell command. Since the POSIX shell
description was based on ksh88, specifying negated pipelines in a way
that made ksh88 non-conforming was clearly not intended.
Desired ActionAfter:

    [!] command1 [ | command2 ...]

add a new paragraph:

    If the pipeline begins with the reserved word ! and command1 is
    a subshell command, the application shall ensure that the ( operator
    at the beginning of command1 is separated from the ! by one or more
    <blank> characters. The behavior of the reserved word ! immediately
    followed by the ( operator is unspecified.

Cross-volume change to XRAT...
At page 3665 line 124711 section C.2.9.2 after:

    The reserved word ! allows more flexible testing using AND and OR
    lists.

append this to the sentence:

    The behavior of !( is unspecified because in the Korn Shell this
    introduces a negated pathname expansion. Portable applications
    need to separate the ! and ( to ensure the command is treated as
    a negated subshell.
Tagstc2-2008

Activities

eblake

2011-12-15 17:27

manager   bugnote:0001082

Last edited: 2011-12-15 17:29

Interpretation response
------------------------
The standard states that !(command) shall be a negated subshell, and
conforming implementations must conform to this. However, concerns have
been raised about this which are being referred to the sponsor.

Rationale:
-------------
Requiring a negated subshell conflicts with shells that provide
an extension of negated pathname expansion.

Notes to the Editor (not part of this interpretation):
-------------------------------------------------------
See Desired Action

ajosey

2012-06-29 16:16

manager   bugnote:0001292

Interpretation proposed 29 June 2012 for final 45 day review

ajosey

2012-08-30 09:15

manager   bugnote:0001355

Interpretation approved 30 Aug 2012

Issue History

Date Modified Username Field Change
2011-11-30 10:46 geoffclare New Issue
2011-11-30 10:46 geoffclare Status New => Under Review
2011-11-30 10:46 geoffclare Assigned To => ajosey
2011-11-30 10:46 geoffclare Name => Geoff Clare
2011-11-30 10:46 geoffclare Organization => The Open Group
2011-11-30 10:46 geoffclare Section => 2.9.2 Pipelines
2011-11-30 10:46 geoffclare Page Number => 2318
2011-11-30 10:46 geoffclare Line Number => 73179
2011-11-30 10:46 geoffclare Interp Status => ---
2011-12-15 17:27 eblake Note Added: 0001082
2011-12-15 17:27 eblake Status Under Review => Interpretation Required
2011-12-15 17:27 eblake Resolution Open => Accepted
2011-12-15 17:27 eblake Interp Status --- => Pending
2011-12-15 17:27 eblake Final Accepted Text => see 0000521:0001082
2011-12-15 17:28 eblake Tag Attached: tc2-2008
2011-12-15 17:29 eblake Note Edited: 0001082
2012-06-29 16:16 ajosey Interp Status Pending => Proposed
2012-06-29 16:16 ajosey Note Added: 0001292
2012-08-30 09:15 ajosey Interp Status Proposed => Approved
2012-08-30 09:15 ajosey Note Added: 0001355
2019-06-10 08:55 agadmin Status Interpretation Required => Closed