[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Automake-NG] [PATCH 3/3] [ng] dist: do not exceed command line leng
From: |
Eric Blake |
Subject: |
Re: [Automake-NG] [PATCH 3/3] [ng] dist: do not exceed command line length limits, even with many files |
Date: |
Sat, 14 Jul 2012 14:56:38 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120615 Thunderbird/13.0.1 |
On 07/14/2012 12:25 PM, Stefano Lattarini wrote:
>>
>> <file command
>>
>> is portable, but
>>
>> <file { compound command; }
>>
>> is not. That is, only simple commands allow you to position a
>> redirection before the rest of the command. 'while' is a compound
>> command, so the redirection must come last.
>>
> Quick and helpful as usual :-) Thanks Eric.
>
> One question though: is "<file { compound command; }" also non-portable
> if we limit ourselves to POSIX shells?
From the POSIX grammar,
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10_02
command : simple_command
| compound_command
| compound_command redirect_list
| function_definition
simple_command : cmd_prefix cmd_word cmd_suffix
| cmd_prefix cmd_word
| cmd_prefix
| cmd_name cmd_suffix
| cmd_name
cmd_prefix : io_redirect
| cmd_prefix io_redirect
| ASSIGNMENT_WORD
| cmd_prefix ASSIGNMENT_WORD
That is, it's hard-coded into the POSIX shell grammar that a
simple_command can start with redirections in the cmd_prefix, but a
compound_command can ONLY have redirections after the end of the
compound command, if you are being portable to POSIX.
--
Eric Blake address@hidden +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- [Automake-NG] [PATCH 2/3] [ng] coverage: distributing lots of files, (continued)
- [Automake-NG] [PATCH 2/3] [ng] coverage: distributing lots of files, Stefano Lattarini, 2012/07/13
- [Automake-NG] [PATCH 1/3] [ng] dist: memoize some internal variables, Stefano Lattarini, 2012/07/13
- [Automake-NG] [PATCH 3/3] [ng] dist: do not exceed command line length limits, even with many files, Stefano Lattarini, 2012/07/13
- Re: [Automake-NG] [PATCH 3/3] [ng] dist: do not exceed command line length limits, even with many files, Akim Demaille, 2012/07/14
- Re: [Automake-NG] [PATCH 3/3] [ng] dist: do not exceed command line length limits, even with many files, Stefano Lattarini, 2012/07/14
- Re: [Automake-NG] [PATCH 3/3] [ng] dist: do not exceed command line length limits, even with many files, Eric Blake, 2012/07/14
- Re: [Automake-NG] [PATCH 3/3] [ng] dist: do not exceed command line length limits, even with many files, Stefano Lattarini, 2012/07/14
- Re: [Automake-NG] [PATCH 3/3] [ng] dist: do not exceed command line length limits, even with many files,
Eric Blake <=
- Re: [Automake-NG] [PATCH 3/3] [ng] dist: do not exceed command line length limits, even with many files, Stefano Lattarini, 2012/07/14
- Re: [Automake-NG] [PATCH 3/3] [ng] dist: do not exceed command line length limits, even with many files, Akim Demaille, 2012/07/18
Re: [Automake-NG] [PATCH 0/3] Distribute many files without hitting command line length limits, Stefano Lattarini, 2012/07/16