Re: double "triangle" loop for $* ?
2006-11-01, 15:58(+00), Casper H.S Dik:
> Janis Papanagnou <Janis_Papanagnou@hotmail.com> writes:
>
>>Stephane CHAZELAS wrote:
>>> 2006-11-1, 00:22(-05), Bill Marcum:
>>>
>>>>Some systems have the "seq" command:
>>>>for x in `seq 1 10`
>>>
>>> GNU systems, seq is a GNU only command. And that assumes the
>>> newline character is in IFS and that no digits are in IFS.
>
>>If one fiddles with IFS he should take care that any changed
>>IFS has just some well defined preferable local scope, take
>>some precautions to save/restore it, or define it for a single
>>command only.
>
>
> And who needs seq (for most purposes) when you have:
>
> `yes "" | cat -n | head -10`
>
>
> for 10 fill in any number.
[...]
Note that neither yes nor cat -n nor head -10 are SUSv3 though
they are supported by most systems
You can do:
NL='
'
yes() {
(
IFS=" "
printf '%s\n' "$*" |
sed -e :1 -e p -e b1
)
}
cat_n() {
nl -ba -d "$NL"
}
and do:
yes "" | cat_n | head -n 10
or:
for x in 1 2 3 4 5 6 7 8 9 10
--
Stéphane
|