On August 23, 2017 3:37:51 PM GMT+02:00, Chet Ramey <chet.ra...@case.edu> wrote:
>On 8/23/17 9:34 AM, Greg Wooledge wrote:
>> On Wed, Aug 23, 2017 at 04:22:09PM +0300, Pierre Gaston wrote:
>>>  testfile () {
>>>     local OPTIND=1 f=${!#}
>>>     while getopts abcdefghLkprsSuwxOGN opt;
>>>           do
>>>              case $opt in
>>>                [abcdefghLkprsSuwxOGN]) test -$opt $f  || return 1;;
>> 
>> "$f"
>> 
>>>                *)return 1;;
>>>              esac;
>>>            done
>>>  }
>>>
>>> if testfile -fx file;then.
>> 
>> Add the quotes, make opt local too, and I think we have a winner.
>This has the advantage of supporting both syntax options: a single
>option with multiple operators or a series of options, each with one
>or more operators, combined with a single operand.

Not really as it changes the meaning of 
test -f file -a -x file
Which I always understood as the correct way of doing this in the first place...

The only optimisation would be to possible cache the stat to save on system io.

-- 
Envoyé de mon téléphone Android avec K-9 Mail. Excusez la brièveté.

Reply via email to