Tengo varias cuentas de Amazon EC2 y quiero poder cambiar rápidamente las variables, como el $EC2_HOMEuso de un script.
Tengo un script de shell configurado así:
#!/bin/sh
export EC2_HOME=/home/me/.ec2
echo $EC2_HOME
Cuando ejecuto el script, sé que EC2_HOMEestá configurado, pero pensé que usarlo exportharía que la variable se quedara después de que se completara el script. No lo hace, ya que correr echo $EC_HOMEno muestra nada.
Sé que esto debe ser un conocimiento de scripts de Linux muy rudimentario, pero no lo sé. Intenté buscar preguntas relacionadas sin suerte, así que disculpen si esto es un duplicado.

.osource, no está generando un nuevo proceso hijo, está ejecutando los comandos en el shell actual..osource. Por qué está pasando esto ?exitdeclaración, por lo que no es adecuado para su fuente.source ./scriptfunciona completamente bien,sudo source ./script.shdicesudo: source: command not found. ¿Cómo puedo hacer esto usando sudo?sudoy de los ajustes de configuración/etc/sudoers, puede o no preservar su entorno al ejecutar comandos consudo. Le sugiero que intente obtener su script y luego ejecutarsudocon la-Eopción para preservar el entorno. Si no funciona, supongo que hay muy poco que puedas hacer.Cuando ejecuta un script, obtiene su propio shell y su propio entorno, que desaparecen nuevamente tan pronto como finaliza el script. Para mantener las variables de entorno, cree el script en su shell actual:
o de manera equivalente (pero un poco más portátil) use el comando de punto POSIX :
Luego, las definiciones se colocarán en el entorno de su shell actual y serán heredadas por cualquier programa que inicie desde él.
Para estar más cerca de ejecutar un script,
. a.shencontrará a.sh buscando en los directorios de laPATHvariable de entorno.Hay algunas sutilezas en cómo éstas se comportan, y si
.ysourceson los mismos (o presente en todos).. ./a.shdefinitivamente se comportará igual en todos los shell compatibles con POSIX, perosourcey., y. a.shy. ./a.sh, pueden variar. Para Bashsourcey.son los mismos en todos los casos; para zshsourcesiempre verifica primero el directorio actual ; ksh es esencialmente similar.Si el nombre del script se proporciona como una ruta (que contiene a
/), esa ruta se usa directamente en todos los casos. La cosa más confiable y portátil que se puede hacer es. ./scripto. /path/to/script.fuente
Solo para el registro.
Si desea ejecutar un script desde internet que exporta env al sistema
puedes usar el siguiente formato
Por ejemplo:
fuente