Ho capito - probabilmente su Usenet a metà degli anni '90 (!) - che il costrutto
export var=value
è un bashismo e l'espressione portatile lo è
var=value
export var
Lo sto sostenendo da anni, ma recentemente qualcuno mi ha sfidato a riguardo, e non riesco davvero a trovare alcuna documentazione a sostegno di quella che era una mia convinzione solida.
Cercare su Google "export: command not found"
non sembra sollevare casi in cui qualcuno abbia effettivamente avuto questo problema, quindi anche se è genuino, immagino che non sia molto comune.
(I colpi che ricevo sembrano essere i neofiti che copiano / punteggiatura incollato, e si è conclusa con 'export: command not found
o qualcosa del genere, o intenzione di usare export
con sudo
e newbie csh
. Utenti che tentano di utilizzare la sintassi Bourne shell)
Posso sicuramente dire che funziona su OS X e su varie distribuzioni Linux, comprese quelle dove si sh
trova dash
.
sh$ export var=value
sh$ echo "$var"
value
sh$ sh -c 'echo "$var"' # see that it really is exported
value
Nel mondo di oggi, è sicuro dire che export var=value
è sicuro da usare?
Mi piacerebbe capire quali sono le conseguenze. Se non è portabile su v7 "Bourne classic", non è altro che curiosità. Se ci sono sistemi di produzione in cui la shell non riesce davvero a far fronte a questa sintassi, sarebbe utile saperlo.
busybox
arriva il suo guscio minimo? (Non sono in grado di provare bene neanche questo secondo.)