shell script - não adicione aspas

1

Eu criei um script npm para executar um único arquivo de teste de brincadeira. Para executar o arquivo, eu digitaria:

> npm start test:1 **/unit-test-filename.test.js

Eu quero tornar isso ainda mais fácil e digitar algo como:

> jt unit-test-filename

Então, tentei criar um script bash que se parece com isso:

#!/bin/bash -x
npm run test:1 **/$1.test.js

Infelizmente, quando tento executá-lo, ele coloca uma única citação em torno do último parâmetro e faz com que o script npm não encontre o arquivo. Eu recebo uma saída assim:

╰─± jt unit-test-filename                                                                                
+ npm run test:1 '**/unit-test-filename.test.js'

> [email protected] test:1 /Users/path/to/my/current/dir
> cross-env NODE_ENV=dev node ./etc/jest1 "**/unit-test-filename.test.js"

Error!! Test file: **/unit-test-filename.test.js doesn't exist.

Eu tentei escapar do asterisco e tentei várias outras coisas. Isso é possível mesmo com scripts bash?

    
por Dustin 14.03.2018 / 17:47

1 resposta

5

Você provavelmente não tem globstar definido em um script de shell.

Você pode ativá-lo com shopt -s globstar .

#!/bin/bash
set -x
shopt -s globstar
npm run test:1 **/"$1".test.js
    
por 14.03.2018 / 17:52