On Thu, 21 Nov 2002, Pierre Maitre wrote:

> F�lix Hauri a �crit :
> > 
> > 
> > Mais permet de bien s'amuser quand m�me:
> > $ echo -e $(
> >         for ((i=97;91-$i;i=$i+1)) do
> --- ne manque-t-il pas un point virgule:
>          for ((i=97;91-$i;i=$i+1)) ; do

Oui, mais non...
Dans le principe et pour ce que je me souvienne avoir appris tu as raison.
Cela dit syntaxiquement parlant, sans le point-virgule, cela se comprend
sans �quivoque, de plus avec ma version de bash cela fonctionne
farpaitement;)
$ echo $BASH_VERSION 
2.05a.0(1)-release

A noter que pour mes mails, j'utilise �normement le copier-coller, cela
�vite les f�tes.


> >                 [ $i -lt 123 ] || i=65
> >                 printf "\\%03o" $i
> >         done
> > )
> 
> Bonsoir 
> 
> J'ai un probl�me avec le petit script de F�lix. Ca m'est tomb� dessus en
> bidouillant sur la ligne de commande pour essayer de comprendre ce que
> faisait le printf:
Dans le script, je m'en sers pour g�n�rer de l'octal.

> 
> [maitre@anesth1 tmp]$ i=97
> [maitre@anesth1 tmp]$ printf "\\%3o\n" $i 
> \141
> [maitre@anesth1 tmp]$ echo -e $(printf "\\%3o" $i)
> a
> Jusque l�, pas de probl�me, mais maintenant je substitue:
> [maitre@anesth1 tmp]$ echo -e $(\141)

la syntaxe: `` $() '' � exactement le m�me effet que la syntaxe plus
ancienne: `` `` ''... hem:
$ echo -e `printf "\\%03o" 97`
a
$ echo -e $(printf "\\%03o" 97)
a

Avec l'avantage d'�tre imbricable:
$ echo -e $(printf "\\%03o" $(echo 64+26|bc))
Z

(Ce qui �tait impensable avec l'ancienne syntaxe: 
$ echo -e `printf "\\%03o" `echo 64+26|bc``
(standard_in) 1: illegal character: ^@
(standard_in) 1: parse error

(� ne pas confondre avec $'' que je n'ai pas utilis� ici car les
apostrophes interdisent le passage des variables.)

--
 F�lix Hauri  -  <[EMAIL PROTECTED]>  -  http://www.f-hauri.ch

--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se d�sabonner aussi.

Répondre à