Issue of the Standard # S0679


Incorrect Shell Language Grammar: else_part

Detailed Description

The section 2.10.2 Shell Grammar Rules reads:

else_part        : Elif compound_list Then else_part
                 | Else compound_list
One can see that there should be Else or Elif right after Then. This is wrong.

Problem location(s) in the standard

The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition (SUS 3.0), Shell & Utilities, Shell Command Language, 2.10.2 Shell Grammar Rules.

Possible solutions

We propose to modify this rule as follows:

else_part        : Elif compound_list Then compound_list
                 | Elif compound_list Then compound_list else_part
                 | Else compound_list


POSIX aardvark