No meu arquivo .sh, não posso invocar comandos ant ou mv ou cp, mas os mesmos comandos são executados no terminal.below é o 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 funcionando apenas no terminal e não via scirpt.
android
/ant
, esses binários estão em / usr / bin?Respostas:
Como seu script é um shell script (
/bin/sh
), suasPATH
entradas no.bashrc
não serão lidas como no shell interativobash
(/bin/bash
).Para disponibilizar suas
PATH
entradas para/bin/sh
scripts executados por um usuário específico, adicione aPATH
entrada ao.profile
arquivo no diretório inicial desse usuário.Além disso, você pode adicionar o caminho completo para cada um dos seus comandos no script:
Ou defina a
PATH
variável, incluindo todas as necessárias$PATHS
no início do seu script.fonte
PATH
no lugar apropriado em vez de.bashrc
. Alterar o script para ser um script bash não fará nenhuma diferença:.bashrc
é carregado apenas por shells interativos.Teve o mesmo problema ao executar um binário cujo caminho está definido no bashrc.
Resolva o problema da seguinte maneira:
Adicione o binário ou adicione um link ao binário em / usr / bin.
Em seguida, verifique usando
Você pode remover o formulário de entrada bashrc.
fonte
você pode fazer uma coisa simples se tiver um script pequeno e terminar o seu trabalho o mais rápido possível
vá na linha de comando use o comando abaixo
O comando acima imprimirá a saída, incluindo o caminho, use esse comando
fonte