[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#24894: coreutils 8.4 : `test -s` without argument does not return an
From: |
Reuti |
Subject: |
bug#24894: coreutils 8.4 : `test -s` without argument does not return an error |
Date: |
Mon, 7 Nov 2016 17:56:08 +0100 |
> Am 07.11.2016 um 17:46 schrieb Eric Blake <address@hidden>:
>
> tag 24894 notabug
> thanks
>
> On 11/07/2016 06:58 AM, BAECKEROOT Alain wrote:
>> Dear gnu-coreutils team
>>
>> We had a funny problem caused by `test` which does return "0" when an option
>> is given without any EXPRESSION
>>
>> The man page says (near line 15 or so) :
>> An omitted EXPRESSION defaults to false.
>
> You are correct that it states that, but it means that 'test' (with no
> expression at all) is what results in a false return (that is, an
> omitted expression is equivalent to zero arguments). 'test -s' is NOT a
> case of an omitted expression; your expression was '-s'. Since you
> provided exactly one argument, you are testing whether '-s' is the empty
> string (it is not, hence the true result).
Doesn't -s refer to a FILE existence, it's not -z?
But I thought in a similar way: it may be incomplete, but not omitted.
Nevertheless: the bash builtin behaves the same.
@Alain: I have no AIX, but l get the impression that test is also a
ksh-builtin. Are you getting the results for both implementations?
-- Reuti
> The full POSIX rules are here:
> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html
>
>> I expected an error (at least return code not zero) , or it would be nice to
>> be warned in the man page.
>
> You are correct that the man page could probably do a bit better at
> explaining that test's behavior is STRONGLY influenced by the number of
> parameters present (and this is per POSIX rules, so it is not just
> coreutils' test implementation, but ALL conforming implementations that
> will behave the same way).
>
>> -------------
>> reference : On *AIX* 6.1 , with IBM's test , there is an error
>>
>> address@hidden:/i/w/l/w00/was> echo $SHELL
>> /bin/ksh
>> address@hidden:/i/w/l/w00/was> uname
>> AIX
>> address@hidden:/i/w/l/w00/was> test -s
>> ksh: test: argument expected
>
> That is a bug in AIX's ksh, which is not POSIX compliant.
>
>> address@hidden:/i/w/l/w00/was> echo $?
>> 1
>>
>> This was the expected behavior :-)
>
> Sorry, but that behavior is contrary to POSIX.
>
>> Ce message électronique, les éventuels fichiers joints et les informations
>> qu'il contient,
>
> Legalese like this is unenforceable on public mailing lists; you may
> wish to use a personal email account rather than spamming us with your
> employer's garbage disclaimer.
>
> --
> Eric Blake eblake redhat com +1-919-301-3266
> Libvirt virtualization library http://libvirt.org
>
signature.asc
Description: Message signed with OpenPGP using GPGMail