Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <vk9le5$o2fo$1@dont-email.me>
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