Deutsch English Français Italiano |
<vk9le5$o2fo$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Janis Papanagnou <janis_papanagnou+ng@hotmail.com> Newsgroups: comp.unix.shell Subject: Re: a sed question Date: Sun, 22 Dec 2024 19:23:00 +0100 Organization: A noiseless patient Spider Lines: 72 Message-ID: <vk9le5$o2fo$1@dont-email.me> References: <874j304vv3.fsf@example.com> <vk40gi$3g9sm$1@dont-email.me> <%QQ9P.18710$M62.16479@fx03.ams4> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Injection-Date: Sun, 22 Dec 2024 19:23:01 +0100 (CET) Injection-Info: dont-email.me; posting-host="b3b1296be5022f5b9cedd89f7de9a436"; logging-data="788984"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+x6VSo39sV4O7+1+Swk9lN" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 Cancel-Lock: sha1:82nPJ/C55P2wovA0K01lQg7vZ3c= X-Enigmail-Draft-Status: N1110 In-Reply-To: <%QQ9P.18710$M62.16479@fx03.ams4> Bytes: 2789 On 22.12.2024 10:19, Ordatious wrote: > On Fri, 20 Dec 2024 15:55:12 +0100, Janis Papanagnou wrote: > >> you may get subtle errors in future if you continue that habit. > > For us newbies, do you have an example? (I had to look up what in my post you were referring to here...) It was about -lt vs '<' in comparisons of strings and numbers respectively. - And I had already answered that elsethread. Depending on the actual value in a string variable you may get _correct looking_ result for many values but since you're not using the correct operator you "unexpectedly" may see errors that you "can't explain". The OP was comparing the number of arguments against a value of 2 with the string comparison. Try (for example) the code for i in a b c d e f g h i j k l m n o p q r s t u v w x y z do set $@ $i if [ $# '<' 2 ] then echo "$# < 2" else echo "$# >= 2" fi done and observe the output 1 < 2 2 >= 2 3 >= 2 4 >= 2 5 >= 2 6 >= 2 7 >= 2 8 >= 2 9 >= 2 10 < 2 11 < 2 12 < 2 13 < 2 14 < 2 15 < 2 16 < 2 17 < 2 18 < 2 19 < 2 20 >= 2 21 >= 2 22 >= 2 23 >= 2 24 >= 2 25 >= 2 26 >= 2 So for "typical" argument numbers <=9 you get the correct result, but once you have more arguments with this program, or if you have wrongly used '<' in another program that expects "naturally" more arguments than the OP's sample program you'll get erroneous behavior (and might not be aware of that if you're used to using '<'). It makes thus no sense to use the wrong operator only because it *sometimes* works correctly even for numeric arguments. HTH. Janis