Selon la section 3.7.1 du manuel Bash, les assignations de variables au début d'une ligne de commande doivent être visibles par le programme invoqué.
par exemple
DIR=/tmp ls $DIR
doit se comporter comme si j'avais tapé "ls /tmp" - et la variable DIR ne doit pas persister après l'exécution de la commande.
Cygwin Bash (GNU bash, version 3.2.51(24)-release (i686-pc-cygwin)) semble ne pas faire cela - la commande ci-dessus se comporte comme si $DIR n'était pas défini. Ceci est confirmé par d'autres tests tels que "DIR=/tmp echo $DIR", "DIR=/tmp set" etc.
Notez que l'ajout d'un point-virgule fonctionne ("DIR=/tmp ; ls $DIR"), mais laisse la variable définie après la commande.
Pourquoi cela ne fonctionne-t-il pas comme prévu ?