O script Bash não pode expandir a variável de ambiente apesar de tentar várias abordagens diferentes

2

Eu tenho um script bash que estou executando com sudo que deveria chamar outros três scripts bash. Dois dos scripts que são chamados são executados corretamente. Um deles, no entanto, tenta chamar um script python. O caminho para este script python é fornecido no script como SCRITPS_URI="${HFGEO_HOME}/bin/waveform.py." Meu problema é que, apesar de tentar muitas abordagens diferentes, não consigo fazer o terceiro script expandir corretamente $HFGEO_HOME. que tentei:

exportando

sendo executado com sudo -E bash -c

executando sudo HFGEO_HOME=/data/hfgeo/ ./script.sh link

adicionando-o ao meu ~/.bashrc e meu ~/.bash_profile

Executando sudo visudo e adicionando aos meus padrões env_keep link (do segundo à última resposta)

Eu continuo recebendo o erro python: can't open file '/bin/waveform.py': [Errno 2] No such file or directory Confirmei que o arquivo está onde deveria estar. Nos meus arquivos bashrc e bash_profile , estou exportando a variável como:

export HFGEO_HOME=/data/hfgeo

e depois adicioná-lo à minha variável PATH como

export PATH=${PATH}:${HFGEO_HOME}/bin

O que me incomoda é que o sistema que estou tentando configurar está sendo executado no mesmo sistema operacional, embora seja uma versão mais recente, como outra máquina que eu tenho onde esse script funciona muito bem. A máquina original está rodando o CentOS 6.4 e a máquina que estou tendo este problema está rodando no CentOS 6.9. Eu não precisei fazer nada disso para que esse script funcionasse na máquina 6.4. Eu já tentei corrigir isso eu mesmo e algumas das tentativas acima que fiz foram baseadas na minha pesquisa, mas nenhuma delas parecia resolver o meu problema. O que estou fazendo errado?

    
por nb12345 14.09.2017 / 20:19

1 resposta

0

Você já tentou executar o script de dentro de um sub-shell? Algo como isso deve funcionar:

sudo bash -c 'export HFGEO_HOME=/data/hfgeo/; ./script.sh'

Seria útil se você postasse o script que está tentando executar ou, de preferência, um exemplo mínimo que produza o mesmo erro.

    
por 18.10.2017 / 14:35