Vous n'êtes pas identifié(e).
Hors ligne
Hors ligne
Hors ligne
Hors ligne
Méthode POSIX : Les commandes let et (( ... )) permettent de typer les variables pour effectuer des calculs sur les variables (synonyme de declare -i).
C'est faux, démonstration
La commande declare -p a après l'affection par ((a=1)), montre que l'attribut -i n'a pas été donné durant l'affectation.
La commande declare -p b, montre que b possède cet attribut en étant déclaré par la commande declare -i b .
Suppression de l'ineptie.
La liberté est gratuite et accessible à tous. Sinon ça n'en est pas.
En ligne
#!/bin/bash
i=1 # on initialise le compteur
while [ $i -le 10 ]; do
echo $i
let $[ i+=1 ] # incremente i de 1 a chaque boucle
done
Dans la première version publiée de bash (1.14.0) en 94.
Il était proposé $[..] , une autre forme d'écriture de l’évaluation arithmétique. Elle était équivalent à $((...)).
Mais des objections ont été émises car depuis 88 ksh (kornshell) avait déjà implémenté $((...)).
Et il était inutile d'avoir une nouvelle syntaxe supplémentaire. De plus elle apportait des incompatibilités mineurs avec case.
(voir https://pubs.opengroup.org/onlinepubs/9 … hap02.html)
En 96 lors de la sotie de bash 2.0, elle fut abandonnée et retirée de la page du manuel. On pouvait alors y lire (et dans les versions suivante) :
The $[...] arithmetic expansion syntax is no longer supported, in favor of $((...)).
Cette syntaxe fut tout de même conservée, car pendant 2 ans de nombreux scripts l'avait utilisé.
Pour cela, bien que non documentée, elle est toujours active dans nos bash actuels.
Mais il est utile de ne plus en parler, de ne plus la montrer sans expliquer qu'elle est obsolète.
... Et surtout ne plus l'utiliser ! Car il arrivera un jour ou elle ne sera plus.
Ceux qui actuellement y font face, savent ce qu'elle est. Ou seront trouver l'explication.
Dernière modification par agp91 (22-02-2023 23:26:49)
La liberté est gratuite et accessible à tous. Sinon ça n'en est pas.
En ligne
Dernière modification par ubub (22-02-2023 23:34:22)
Hors ligne
Bonjour,
du coup, p'têt tu pourrais faire un encart sur cette notation, pour expliquer ce qu'il en est, en plus bref (c'était cool l'explication) , juste dire que ça existe, c'est obsolète, valable, encore en cours pour la rétrocompatibilité (je présume), voire encore référencée dans certains tutos ou wikis, mais bel et bien obsolète et donc à éviter ..
Bonsoir,
Voila qui est fait.
Page modifiée
Ajout d'une note explicative sous le script, indiquant de ne plus utiliser la commande $[...] et proposant des alternatives.
La liberté est gratuite et accessible à tous. Sinon ça n'en est pas.
En ligne
Hors ligne