Esecuzione di un file .sh ma dopo il nuovo PATH non è visibile nella shell

1

Sto eseguendo un file ./setWLSEnv.sh che ha il seguente output:

link

    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.

MA quando vado nello stesso terminale e eseguo

echo PATH ha ancora il vecchio percorso ...

Qualche idea? Grazie

    
posta Cris 14.11.2014 - 16:21
fonte

3 risposte

3

Non puoi eseguire uno script per impostare il percorso nella tua shell corrente. Nel tuo caso questo non sembra essere comunque necessario perché tutto lo script è impostare le variabili corrette per eseguire il processo java alla fine. Quindi all'interno di questo processo tutte le variabili d'ambiente dovrebbero essere impostate correttamente.

Per impostare le variabili nella shell corrente, impostale in .bashrc / .bash_profile e apri una nuova shell; o duplica il tuo script, rimuovi l'ultima riga e inserisci il nuovo script nella shell con . path/to/new/script .

    
risposta data 14.11.2014 - 17:36
fonte
2

Presumo (tramite il nome) che si tratta di uno script di impostazione dell'ambiente Weblogic. Solitamente viene chiamato tramite lo script principale weblogic per impostare i percorsi prima di avviare / arrestare il server, ma si sta tentando di impostare i percorsi all'interno della propria shell per qualsiasi motivo. Penso che il tuo problema risieda nel modo in cui esegui lo script:

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

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

La seconda riga proposta dovrebbe "generare" lo script all'interno del tuo ambiente e funzionerà

Verifica perché funziona, leggendo "man bash" e cerca all'interno la definizione di "source"

    
risposta data 14.11.2014 - 23:08
fonte
0

Nel tuo file, sostituisci PATH= con PATH=$PATH: . Questo prende la variabile PATH attuale e aggiunge tutti i nuovi PATH.

Aggiungi export PATH alla fine del file. Questo esporta il PATH precedente con le tue modifiche.

#!/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
    
risposta data 14.11.2014 - 16:26
fonte

Leggi altre domande sui tag