Comando não encontrado em execução no shell script

3

Estou executando o git-bash no windows. Eu sinto que o problema que estou enfrentando é mais uma questão voltada para o NIX do que o Windows. Eu tenho um script de shell:

build.sh

myProject="../myProject/"
build="gulp build"

cd "${myProject}"
pwd
"${build}"

Quando executo esse script, recebo um erro

gulp build: command not found

Quando eu executo "gulp build" diretamente no shell, executando esses mesmos comandos manualmente, tudo funciona. Eu tentei executar o script via:

. build.sh e apenas build.sh

Mesmo erro de qualquer maneira. Como posso executar um script que possa acessar o gulp / npm? Por que isso falha mesmo quando estou pesquisando o script?

    
por P.Brian.Mackey 18.03.2016 / 14:33

2 respostas

11

A citação de "${build}" impede a divisão de palavras, por isso tem o mesmo efeito aqui que escrever "gulp build" (com aspas), que procuraria por um executável chamado gulp build com um espaço dentro do nome; e não como escrevendo gulp build , que executa gulp com um argumento build .

Concluindo, a última linha do seu script deve ser:

${build}
    
por 18.03.2016 / 14:44
7

Não cite "${build}" . Como se espera, nesse caso, o comando gulp build (com um espaço dentro) e relata corretamente que tal comando não existe.

Execute simplesmente por ${build} . Então, o shell irá tratá-lo como um comando e argumentos.

myProject="../myProject/"
build="gulp build"

cd "${myProject}"
pwd
${build}
    
por 18.03.2016 / 14:38

Tags