Ejecutando un archivo .sh pero después de la nueva ruta no es visible en el shell

1

Estoy ejecutando un archivo ./setWLSEnv.sh que tiene el siguiente resultado:

enlace

    PATH=/Users/cris/Oracle/Middleware/Oracle_Home/wlserver/server/bin:/Users/cris/Oracle/Middleware/Oracle_Home/wlserver/../oracle_common/modules/org.apache.
ant_1.9.2/bin:/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/H
ome/jre/bin:/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin:
/Users/cris/perl5/perlbrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbi
n:/sbin:/opt/X11/bin:/Users/cris/Oracle/Middleware/Oracle_Home/wlser
ver/../oracle_common/modules/org.apache.maven_3.0.5/bin


Your environment has been set.

PERO cuando voy en el mismo terminal y ejecuto

echo PATH todavía tiene el antiguo camino ...

¿Alguna idea? Gracias

    
pregunta Cris 14.11.2014 - 16:21

3 respuestas

3

No puede ejecutar un script para establecer la ruta en su shell actual. En su caso, esto no parece ser necesario de todos modos porque todo lo que hace el script es configurar las variables correctas para ejecutar el proceso java al final. Así que dentro de este proceso, todas las variables de entorno deben configurarse correctamente.

Para establecer variables en el shell actual, configúrelas en .bashrc / .bash_profile y abra un nuevo shell; o duplique su secuencia de comandos, elimine la última línea y obtenga la nueva secuencia de comandos en el shell con . path/to/new/script .

    
respondido por el nohillside 14.11.2014 - 17:36
2

Supongo (a través del nombre) que esta es una secuencia de comandos de configuración del entorno Weblogic. Normalmente se llama a través del script principal de weblogic para establecer rutas antes de iniciar / detener el servidor, pero está intentando establecer rutas dentro de su propio shell por cualquier motivo. Creo que su problema radica en la forma en que ejecuta el script:

./setWLSEnv.sh # will execute the script and do nothing

. ./setWLSEnv.sh # (note starts with a "dot space") 

La segunda línea propuesta debería "originar" el script dentro de su entorno y funcionará

Comprueba por qué funcionaría esto, leyendo "man bash" y busca la definición de "fuente"

    
respondido por el thanosa75 14.11.2014 - 23:08
0

En tu archivo, reemplaza PATH= con PATH=$PATH: . Esto toma la variable PATH real y agrega todos sus nuevos PATH.

Agregue export PATH al final del archivo. Esto exporta el PATH anterior con tus cambios.

#!/bin/bash
PATH=$PATH:/Users/cris/Oracle/Middleware/Oracle_Home/wlserver/server/bin:/Users/cristianchiovari/Oracle/Middleware/Oracle_Home/wlserver/../oracle_common/modules/org.apache.ant_1.9.2/bin:/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/jre/bin:/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin:/Users/cristianchiovari/perl5/perlbrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/cristianchiovari/Oracle/Middleware/Oracle_Home/wlserver/../oracle_common/modules/org.apache.maven_3.0.5/bin
export PATH
    
respondido por el jherran 14.11.2014 - 16:26

Lea otras preguntas en las etiquetas