Afficher un message
Vieux 01/11/2006, 18h05   #15
Stephane CHAZELAS
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut 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
  Réponse avec citation
 
Page generated in 0,06099 seconds with 9 queries