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.
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.
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.