O usuário do Sudo não pode exportar o caminho da formiga

1

O usuário do Sudo não pode exportar o caminho da formiga.

Estou tentando executar o script de shell setpath.sh , que exporta o caminho para o formiga. Depois de executar o script quando estou executando o comando ant, em seguida, obtendo o comando ant não encontrado.

Aqui está o meu script setpath.sh :

#!/bin/sh

ABC_HOME='pwd'
ANT_HOME=$ABC_HOME/lib/ant

PATH=$ANT_HOME/bin:$ABC_HOME/scripts/unix:$PATH

chmod +x $ANT_HOME/bin/ant
chmod +x $ABC_HOME/scripts/unix/*/*.sh

export ABC_HOME ANT_HOME PATH

Aqui estão os passos que estou usando.

sudo -Hu abc /bin/sh setpath.sh

Nota: Eu coloquei o alias do comando . ./setpath.sh no usuário do sudo .bash_profile

alias setpath.sh='. ./setpath.sh'

Para que eu possa usá-lo no meu comando e script, execute no shell atual.

Depois de executar o script quando estou executando o comando ant ele está mostrando o comando não encontrado.

Também verifiquei o ant_home e descobri que ele não foi configurado mesmo depois de executar o script setpath.sh .

sudo -Hu abc echo $ANT_HOME

Colocando o ant_home em branco.

Por favor, informe onde estou indo errado.

    
por Sumit 20.03.2016 / 23:12

1 resposta

0

A execução de um script .sh gera um novo shell. Este shell é filho do seu shell anterior. Seu script é executado e você é devolvido ao shell pai.

Você não pode definir as variáveis de um shell pai de seu shell filho. Desculpe pela má notícia.

link

    
por 05.10.2017 / 01:36