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
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?
Tags bash shell-script