exportexporta 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 bazno está asignado a foo, simplemente se convierte en un parámetro posicional literal. Hay muchas otras cosas que setpuede hacer (principalmente opciones de shell), vea help set.
En cuanto a la impresión, la exportllamada sin argumentos imprime todas las variables en el entorno del shell. settambié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.