dia*_*lex 0 bash javascript globbing redhat-enterprise-linux
我们使用此命令使用mocha运行所有测试:mocha ./src/test/**/*.js --recursive
注意双**. 它在任何现代 bash 上都可以正常工作,但 CI 系统是 RedHat 和GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu).
我读到v3 不支持双 globstar。
shopt -s globstar
shopt: globstar: invalid shell option name。问题:如何**在 linux bash v3.* 上执行命令?任何解决方法?
如果它不支持globstar,那么它就不支持它。
然而,大部分的时间,你可以适应find,xargs和/或类似的工具。您的案例非常简单,所有内容都在一个目录下,因此:
find src/test -name "*.js" -exec mocha --recursive {} +
find src/test -name "*.js" -print | xargs -d '\n' mocha --recursive
Run Code Online (Sandbox Code Playgroud)
(find将文件名代替{},而xargs将它们附加到末尾。因此,在这两种情况下,重复的参数必须放在所有 --options 之后,但这对于大多数程序来说应该不是问题。)
或者,如果mocha 对每个文件运行一次就可以了,那么:
find src/test -name "*.js" -exec mocha {} --recursive \;
Run Code Online (Sandbox Code Playgroud)
比较-exec … \;(一次一个文件)和较早的-exec … +(尽可能多的)。
注意:在上述所有示例中,"*.js"必须引用the ,因为您要find处理它,而不是 shell。
| 归档时间: |
|
| 查看次数: |
616 次 |
| 最近记录: |