|
From: | GNU bug Tracking System |
Subject: | [debbugs-tracker] bug#24894: closed (coreutils 8.4 : `test -s` without argument does not return an error ) |
Date: | Mon, 07 Nov 2016 16:47:03 +0000 |
Your message dated Mon, 7 Nov 2016 10:46:16 -0600 with message-id <address@hidden> and subject line Re: bug#24894: coreutils 8.4 : `test -s` without argument does not return an error has caused the debbugs.gnu.org bug report #24894, regarding coreutils 8.4 : `test -s` without argument does not return an error to be marked as done. (If you believe you have received this mail in error, please contact address@hidden) -- 24894: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=24894 GNU Bug Tracking System Contact address@hidden with problems
--- Begin Message ---Subject: coreutils 8.4 : `test -s` without argument does not return an error Date: Mon, 7 Nov 2016 12:58:15 +0000 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. This is not the case when an option is given (tested for -s and -d options) address@hidden:/home/wasoi> echo $SHELL /bin/ksh address@hidden:/home/wasoi> uname Linux address@hidden:/home/wasoi> test -s address@hidden:/home/wasoi> echo $? 0 I expected an error (at least return code not zero) , or it would be nice to be warned in the man page. ---------- system and package information : address@hidden:/home/wasoi> cat /etc/redhat\-release CentOS release 6.4 (Final) List of rpm coreutils-libs-8.4-19.el6.x86_64 coreutils-8.4-19.el6.x86_64 policycoreutils-2.0.83-19.30.el6.x86_64 ------------- 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 address@hidden:/i/w/l/w00/was> echo $? 1 This was the expected behavior :-) The *AIX* man page gives Exit Status This command returns the following exit values: Item Description 0 The Expression parameter is true. 1 The Expression parameter is false or missing. >1 An error occurred. ------------- Best regards , and thanks a lot for your work. Alain BAECKEROOT (cnav.fr)*****************************************************************************************
Ce message électronique, les éventuels fichiers joints et les informations qu'il contient, peuvent être couverts par le secret professionnel et sont exclusivement adressés à son destinataire. Si vous le recevez par erreur, merci d'en informer l'expéditeur et de le détruire. A ce titre, toute diffusion non autorisée de ce message, même partielle, sous quelque forme que ce soit, est interdite et punie par la loi.
En aucun cas, le contenu de ce message ne peut valoir offre ou acceptation ou engagement de la part de la CARSAT SUD-EST.
Les opinions contenues dans ce message sont personnelles à l'émetteur.
Il est de la responsabilité du destinataire de s'assurer que le message et ses éventuelles pièces jointes ne contiennent pas de virus informatique.
--- End Message ---
--- Begin Message ---Subject: Re: bug#24894: coreutils 8.4 : `test -s` without argument does not return an error Date: Mon, 7 Nov 2016 10:46:16 -0600 User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 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). 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.orgsignature.asc
Description: OpenPGP digital signature
--- End Message ---
[Prev in Thread] | Current Thread | [Next in Thread] |