Al ejecutar un script de shell en Ubuntu (o cualquier entorno de tipo Unix), ¿cómo puedo conservar las exportaciones fuera del script?

Soy nuevo en Linux y especialmente en Ubuntu 11, que estoy probando hoy por primera vez. Necesito Linux para algún desarrollo que requiere un emulador basado en Linux, así que estoy tratando de escribir un script de shell que configure mi entorno de desarrollo.

Ahora he creado un .scripts carpeta en mi directorio de inicio y la agregué a mi ruta exportándola en .bashrc así que cada vez que inicio una nueva instancia de terminal, puedo ejecutar cualquier script personalizado que coloque allí.

Ahora uno (tres en realidad) de esos scripts configura todas mis rutas relacionadas con el desarrollo, exportaciones, así como un cd comando que cambia a la carpeta apropiada para este dev. Sin embargo (de nuevo, perdóneme si ya sabe esto ...) el script se ejecuta en su propia 'sesión' (a falta de una palabra mejor), así que aunque las enviro-vars y demás están configuradas y se ejecutan (como se demostró por incrustación echo llamadas en todo momento) cuando finaliza el script y vuelvo a la terminal donde ejecuté el script, esa otra sesión ya no existe y, con la excepción de borrar la pantalla y hacer eco de la salida, no hay nada más que muestre que el script alguna vez se ejecutó.

Ahora no estoy seguro de que sea posible extender las variables exportadas fuera de ese script de nuevo a la 'instancia' de llamada o si hay algún tipo de indicador que puedo configurar para ejecutar el script en la sesión existente, así que estoy perplejo.

Ahora si eso es no es posible, ¿es al menos posible escribir un script o configurar un icono que pueda lanzar una nueva ventana de terminal, luego ejecutar el script pero dejando la ventana abierta e inicializada?

¡Gracias!

Mark

preguntado el 10 de mayo de 11 a las 13:05

by convención sus guiones personales se guardan en ~/bin/ y esto puede que ya sea parte de tu $PATH pero claro, depende de ti -

¡Bueno saber! Los llevaré allí y me aseguraré de que estén en el camino. -

2 Respuestas

Ejecute el comando con fuente.

fuente foo.sh

contestado el 10 de mayo de 11 a las 17:05

Coloque el script en una definición de función en ~/.bashrc. Por ejemplo

enter_dev_env() {
        cd /home/foo/src
        export foo="bar"
}

contestado el 10 de mayo de 11 a las 22:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.