comando não encontrado via shell script, mas funciona no terminal

9

No meu arquivo .sh, não consigo invocar comandos ant ou mv ou cp, mas os mesmos comandos são executados no terminal.abaixo está meu script

arquivo sample.sh

#! /bin/sh
cp filename.so filename_org.so
android update project -p .
ant clean
ant release

caminho adicionado no arquivo .bashrc.

export PATH=$PATH:/usr/bin/

cp, mv, ant estão trabalhando apenas no terminal, não via scirpt.

    
por user755 20.10.2014 / 12:39

2 respostas

7

Como seu script é um script de shell ( /bin/sh ), as entradas de PATH em .bashrc não serão lidas como no shell interativo bash ( /bin/bash ).

Para disponibilizar suas entradas PATH para /bin/sh scripts executados por um usuário específico, adicione a entrada PATH ao arquivo .profile no diretório inicial desses usuários.

Além disso, você pode adicionar o caminho completo para cada um dos seus comandos no script:

/bin/cp filename.so filename_org.so

Ou defina a variável PATH , incluindo todos os $PATHS necessários no início do seu script.

PATH=$PATH:/bin:/usr/bin:xxx
export PATH
    
por 20.10.2014 / 13:41
0

Teve o mesmo problema ao executar um binário cujo caminho está definido em bashrc.

Resolveu o problema fazendo o seguinte:

Adicione o binário ou adicione um link ao binário em / usr / bin.

ln -s [path_to_binary] [name_of_executable] 

Em seguida, verifique usando

ls -l

Você pode remover o formulário de inscrição bashrc.

    
por 10.05.2017 / 08:57

Tags