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.
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU [email protected] http://cnswww.cns.cwru.edu/~chet/