J'ai compris - probablement sur Usenet au milieu des années 1990 (!) - que la construction
export var=value
est un bashisme, et que l'expression portable est
var=value
export var
Je préconise cela depuis des années, mais récemment, quelqu'un m'a contesté à ce sujet, et je ne trouve vraiment aucune documentation pour sauvegarder ce qui était une croyance solide.
La recherche sur Google "export: command not found"
ne semble pas évoquer de cas où quelqu'un a réellement eu ce problème, donc même si c'est authentique, je suppose que ce n'est pas très courant.
(Les hits que je reçois semblent être des débutants qui copient / collent la ponctuation, et se sont retrouvés avec 'export: command not found
ou quelque chose comme ça , ou qui essaient d'utiliser export
avec sudo
; et les csh
utilisateurs débutants essayant d'utiliser la syntaxe du shell Bourne.)
Je peux certainement dire que cela fonctionne sur OS X et sur diverses distributions Linux, y compris celles où il se sh
trouve dash
.
sh$ export var=value
sh$ echo "$var"
value
sh$ sh -c 'echo "$var"' # see that it really is exported
value
Dans le monde d'aujourd'hui, est-il sûr de dire que son utilisation export var=value
est sûre?
J'aimerais comprendre quelles en sont les conséquences. Si ce n'est pas portable pour la v7 "Bourne classic", ce n'est guère plus qu'une anecdote. S'il existe des systèmes de production où le shell ne peut vraiment pas faire face à cette syntaxe, ce serait utile de le savoir.
busybox
vient pas avec sa propre coquille minimale? (Je ne suis pas en mesure d'essayer non plus cette seconde.)