Script Bash não adicionando variáveis à sessão [duplicado]

0

Eu tenho um script bash que adicionei como um aplicativo de inicialização. Ele faz um monte de exportações e atribuição de alias.

#! /bin/bash

alias devhm='cd ${DEV_HOME}; ll';
alias wlhm='cd ${WL_HOME}; ll';
alias dirch='watch --interval=1 "ls -la"';
alias vols='watch --interval=1 "df -h"';
alias svn-update='svn update --depth infinity ./*';
alias mci="~/mci.sh";
alias vncserver="vncserver -geometry 1680x1050";
alias ..="cd ..";
alias hist="history | grep ";

export PROXY_HOST=proxy.my.setup;
export PROXY_PORT=3128;

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH/usr/lib/oracle/12.1/client64/lib;
export ORACLE_HOME=/usr/lib/oracle/12.1/client64;
export TNS_ADMIN=${ORACLE_HOME}/network/admin;

echo "DONE!";

Mas nenhum desses valores está disponível nas minhas sessões de terminal. Mesmo quando eu corro o script direto para o terminal da seguinte forma:

./setup.sh

Eu vejo o "DONE!" prompt impresso, mas sem aliases ou variáveis env são definidas.

Se eu copiar e colar o conteúdo do arquivo no terminal, os aliases e as variáveis env serão definidos.

Eu tentei adicionar uma linha para executar o script de .bashrc também, mas ainda sem aliases ou variáveis env configuradas.

Alguma idéia do que pode estar acontecendo aqui? Também alguém poderia sugerir uma maneira melhor de ter essas variáveis env / aliases adicionados a cada sessão de terminal?

    
por travega 28.05.2014 / 05:31

1 resposta

1

Em seu .bashrc , faça referência ao seu script de inicialização personalizado usando . setup.sh em vez de ./setup.sh . Isso fará com que seja executado no contexto da sessão atual, em vez de ser executado como um programa separado com seu próprio contexto.

    
por Jeremiah Peschka 28.05.2014 / 06:20