Estoy en un poco de una pérdida en cuanto a la finalidad de sety exporten Bash (y supongo que probablemente otros proyectiles también).
Creo que es para establecer variables de entorno, pero eso se puede hacer solo con VARIABLE=VALUE, ¿verdad?
También escribiendo sety exportpor sí mismos muestran diferentes valores.
Entonces, ¿cuál es su propósito?

Respuestas:
exportexporta a los hijos del proceso actual, por defecto no se exportan. Por ejemplo:set, por otro lado, establece atributos de shell, por ejemplo, los parámetros posicionales.Tenga en cuenta que
bazno está asignado afoo, simplemente se convierte en un parámetro posicional literal. Hay muchas otras cosas quesetpuede hacer (principalmente opciones de shell), veahelp 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), veahelp export.fuente
foo=bar command. Esta es una exportación implícita para un solo comando. La segunda posibilidad es quehttp_proxyya se haya exportado a su entorno antes de modificarlo.Ver
help set: set se usa para establecer atributos de shell y atributos posicionales.Las variables que no se exportan no son heredadas por los procesos secundarios.
exportse utiliza para marcar una variable para exportar.fuente