Il 23:48, giovedì 21 novembre 2002, Félix Hauri ha scritto:
...
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
Surlignage Pierre Maitre [EMAIL PROTECTED]:
[maitre@anesth1 tmp]$ echo -e $(\141)
bash: 141: command not found
Là je comprends plus
essaie echo \141
@++
JC
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.
Pierre Maitre wrote:
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:
[maitre@anesth1 tmp]$ i=97
[maitre@anesth1 tmp]$ printf \\%3o\n $i
\141
[maitre@anesth1 tmp]$ echo
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
On Thu, 21 Nov 2002, Jean-Claude Schopfer wrote:
Surlignage Pierre Maitre [EMAIL PROTECTED]:
[maitre@anesth1 tmp]$ echo -e $(\141)
bash: 141: command not found
Là je comprends plus
essaie echo \141
Sous bash, il faut demander à echo d'exécuter les échappements
paramètre ``-e''
Félix Hauri a écrit :
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
mais pas chez moi:
bash: command substitution: line 2: syntax error near
Après:
$ for i in $( seq 10 -1 1 ) ; do echo $i;done
Le bash permet de faire des boucles de ce genre:
$ for (( i=10 ; $i ; i=$i-1 )) ; do echo $i;done
Ce n'est pas plus court, mais cela ne fait pas appel ``seq''.
Explication: La première expression ( i=10 ) n'est éxecutée qu'une fois au