GNU bug report logs -
#47859
Additional seq outlandish example: seq 0 dangers
Previous Next
Full log
View this message in rfc822 format
Hi,
On Sun, Apr 18, 2021 at 09:26:28AM +0800, 積丹尼 Dan Jacobson wrote:
> On (info "(coreutils) seq invocation") we read
> Be careful when using ‘seq’ with outlandish values: otherwise you
> may...
>
> Here's another 'fun/sad/DDOS yourself' example you might add:
>
> One day I wrote a Makefile,
> m:
> seq 0 9|sed s/$$/號.html/|xargs make
> but before using it, I though I'll just test with one item,
> m:
> seq 0 |sed s/$$/號.html/|xargs make
> well of course... as seq prints nothing here,
> this triggered a massive ever growing recursive loop...
>
> Yes, all my fault for picking 0. I'll pick 1 next time.
>
> P.S., perhaps document how to get seq to cough up just "0". One way I
> found was:
> $ seq 0 1 0
> 0
I would like to add more information to this bug report with the intent of
helping everybody involved now or in the future.
A slighly simpler method to make 'seq' print just '0' is:
$ seq 0 0
0
This is documented, but more generally, e.g., in 'seq --help':
$ seq --help
Usage: seq [OPTION]... LAST
or: seq [OPTION]... FIRST LAST
or: seq [OPTION]... FIRST INCREMENT LAST
Print numbers from FIRST to LAST, in steps of INCREMENT.
[...]
If FIRST or INCREMENT is omitted, it defaults to 1. [...]
[...]
Thus, 'seq 0' is the same as 'seq 1 1 0' and 'seq 0 0' is the same as
'seq 0 1 0'.
The default value of '1' for omitted parameters affects other values, too,
not just '0':
$ seq -1
$ seq -1 -1
-1
$ seq -100000
$ seq -100000 -100000
-100000
When "FIRST" and "LAST" are the same, any valid "INCREMENT" value results
in 'seq' printing just one value, not just the default of '1':
$ seq 0 200 0
0
$ seq 0 -200 0
0
$ seq 0 0 0
seq: invalid Zero increment value: ‘0’
Try 'seq --help' for more information.
Thus IMHO a possible addition to the documentation should probably not
just single out 'seq 0', but mention any number smaller than the default
value for "FIRST" of '1'.
HTH, HAND
Erik
--
Inside every large problem is a small problem struggling to get out.
-- Hoare's Law of Large Problems
This bug report was last modified 4 years and 58 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.