Como executar scripts shell começando com ./ no Ubuntu e Mac sem qualquer modificação?

0

Código original, destinado ao Ubuntu:

./rebar get-deps
./rebar compile

Quando eu tento:

sh start.sh
start.sh: line 5: ./rebar: No such file or directory

A correção é simples, basta remover ./

Mas como tornar o script em execução no Ubuntu e Mac sem forçar o usuário a fazer alterações?

EDIT / UPDATE: rebar é a ferramenta Erlang instalada via brew install rebar

Aqui está o arquivo start.sh original: link

Eu acho que é diferença entre Mac e Ubuntu - o script supostamente funciona no Ubuntu (não tive chance de tentar) - enquanto no Mac eu tive que remover ./ ( Eu preciso verificar no Ubuntu eu mesmo)

    
por Michal Stefanow 08.04.2017 / 09:22

1 resposta

0

./rebar está endereçando o arquivo no presente diretório de trabalho apenas. A inicialização de rebar força uma pesquisa nos diretórios no seu ambiente PATH .

Se estas são as únicas duas opções que você pode adicionar ao seu script:

REBAR="rebar"
[ -x ./rebar ] && REBAR="./rebar"   # check if rebar is in pwd

$REBAR get-deps
$REBAR compile 
...
    
por 08.04.2017 / 12:22