shell 脚本 - 不要添加引号

shell 脚本 - 不要添加引号

我创建了一个 npm 脚本来运行单个笑话测试文件。要运行该文件,我将输入:

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

我想让这变得更容易并输入如下内容:

> jt unit-test-filename

所以我尝试创建一个如下所示的 bash 脚本:

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

不幸的是,当我尝试运行它时,它在最后一个参数周围添加了单引号,这样 npm 脚本就无法找到该文件。我得到这样的输出:

╰─± 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.

我尝试过转义星号并尝试了许多其他方法。这甚至可以通过 bash 脚本实现吗?

答案1

您可能没有globstar在 shell 脚本中进行设置。

您可以使用 启用它shopt -s globstar

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

相关内容