export
exporta a los hijos del proceso actual, por defecto no se exportan. Por ejemplo:
$ foo=bar
$ echo "$foo"
bar
$ bash -c 'echo "$foo"'
$ export foo
$ bash -c 'echo "$foo"'
bar
set
, por otro lado, establece atributos de shell, por ejemplo, los parámetros posicionales.
$ set foo=baz
$ echo "$1"
foo=baz
Tenga en cuenta que baz
no está asignado a foo
, simplemente se convierte en un parámetro posicional literal. Hay muchas otras cosas que set
puede hacer (principalmente opciones de shell), vea help set
.
En cuanto a la impresión, la export
llamada sin argumentos imprime todas las variables en el entorno del shell. set
también imprime variables que no se exportan. También puede exportar algunos otros objetos (aunque debe tener en cuenta que esto no es portátil), vea help export
.