Linux por que eu tenho que executar comandos em vez de executar o arquivo bash [duplicado]

0

Para executar um arquivo executável, preciso executar todos os comandos no arquivo bash abaixo primeiro, então basta colocar esses comandos no arquivo bash e executar o arquivo bash primeiro, mas executar o arquivo bash não trabalho, eu tenho que executar os 4 comandos um por um no terminal e, em seguida, executar o meu arquivo executável in the same terminal , por que eu tenho que fazer isso, por que executar o arquivo bash não conseguir o o mesmo que executar os comandos um por um:

#!/bin/bash
export LD_LIBRARY_PATH=/repo/$USER/ncmain/out/rcpi/ITC_CXA11466/x86/lib
export ITC_RUNDIR_PATH=/local/scratch/$USER/itc/
export ITC_INSTANCE_NAME=itc_$USER
/local/scratch/ehhozzo/RCS_ROOT/software/itcworld
    
por Zhenxiao Hao 06.03.2015 / 20:11

1 resposta

2

" source funciona, mas por quê?" - Quando você executa um script que está definindo variáveis de ambiente, você inicia um subshell por padrão. As variáveis recém-definidas não necessariamente retornam ao seu shell de nível superior. Quando você source um script, você está dizendo ao seu shell para executar os comandos no seu shell atual e não iniciar um subshell, assim as variáveis recém-configuradas estarão no shell que você espera que elas estejam dentro.

    
por 06.03.2015 / 20:21