首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么相同的通配符在shell和npm脚本中表现不同?

在shell和npm脚本中,相同的通配符可能会表现出不同的行为,这是因为两者的环境和用途不同。

在shell脚本中,通配符通常用于文件名模式匹配。常见的通配符有星号()和问号(?),用于匹配文件名中的字符。通配符的具体表现形式和行为可能会受到不同的操作系统和shell版本的影响。一般而言,星号()表示匹配零个或多个字符,问号(?)表示匹配一个字符。

在npm脚本中,通配符通常用于定义命令脚本的执行规则。npm脚本是用于自动化构建、测试、部署等任务的脚本。通常使用的通配符有星号()和双星号()。星号()表示匹配任意字符(不包括路径分隔符),而双星号(**)表示递归地匹配任意路径。

这种不同表现的原因主要是因为shell和npm脚本的设计目的不同。shell脚本主要用于操作文件和系统,通配符用于方便地匹配文件名。而npm脚本主要用于定义任务和命令的执行规则,通配符用于指定匹配的文件或路径。

总结起来,相同的通配符在shell和npm脚本中表现不同是因为它们的用途和环境不同。在使用过程中,需要根据具体情况来选择合适的通配符和使用方式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

npm scripts 使用指南

项目的相关脚本,可以集中一个地方。 不同项目的脚本命令,只要功能相同,就可以有同样对外接口。用户不需要知道怎么测试你项目,只要运行npm run test即可。.../node_modules/.bin/mocha test" 由于 npm 脚本唯一要求就是可以 Shell 执行,因此它不一定是 Node 脚本,任何可执行文件都可以写在里面。...npm 脚本退出码,也遵守 Shell 脚本规则。如果退出码不是0,npm 就认为这个脚本执行失败。 三、通配符 由于 npm 脚本就是 Shell 脚本,因为可以使用 Shell 通配符。...如果要将通配符传入原始命令,防止被 Shell 转义,要将星号转义。 "test": "tap test/\*.js" 四、传参 向 npm 脚本传入参数,要使用--标明。...所以,可以利用这个变量,同一个脚本文件里面,为不同npm scripts命令编写代码。请看下面的例子。

1.2K70

npm scripts使用

项目的相关脚本,可以集中一个地方。 不同项目的脚本命令,只要功能相同,就可以有同样对外接口。用户不需要知道怎么测试你项目,只要运行npm run test即可。.../node_modules/.bin/mocha test" 由于 npm 脚本唯一要求就是可以 Shell 执行,因此它不一定是 Node 脚本,任何可执行文件都可以写在里面。...npm 脚本退出码,也遵守 Shell 脚本规则。如果退出码不是0,npm 就认为这个脚本执行失败。 三、通配符 由于 npm 脚本就是 Shell 脚本,因为可以使用 Shell 通配符。...如果要将通配符传入原始命令,防止被 Shell 转义,要将星号转义。 "test": "tap test/\*.js" 四、传参 向 npm 脚本传入参数,要使用--标明。...所以,可以利用这个变量,同一个脚本文件里面,为不同npm scripts命令编写代码。请看下面的例子。

86020
  • 你不知道npm

    安装插件时候,peerDependencies npm 2.xnpm 3.x中表现不一样。npm2.x 会自动安装同等依赖,npm3.x 不再自动安装,会产生警告!...x、X还有*(空),这些都表示使用通配符版本号,可以匹配任何内容。...从上图这种情况,我们不难得出嵌套结构拥有以下缺点: 不同层级依赖,可能引用了同一个模块,导致大量冗余 嵌套层级过深可能导致不可预知问题 扁平结构 为了解决以上问题,npm 3.x 版本做了一次较大更新...原理 这里我们参考一下阮老师文章: npm 脚本原理非常简单。每当执行 npm run,就会自动新建一个 Shell,在这个 Shell 里面执行指定脚本命令。...因此,只要是 Shell(一般是 Bash)可以运行命令,就可以写在 npm 脚本里面。

    1.4K50

    npm、npx说起,到shell

    背景:目前整个我们前端工程栈有多处 CLI(包括工具、模板等等),CLI 带来了巨大便利性,但其 Windows 下执行往往 Mac/Unix 系统下表现不同。...今天想从 npm run 命令开始,尽可能阐述一下整条链~~~ npm script 项目的相关脚本,可以集中一个地方(这里指入口) 以利用 npm 提供很多辅助功能,以及不同项目的脚本命令...,只要功能相同,就可以有同样对外接口(如 npm run test,不管是 mocha 还会 jasmine) npm 脚本原理非常简单。...脚本 shell 运行,取决于平台。...这些脚本都通过 Shell 解释执行,而不通过编译 Shell 是一个工具箱,提供了各种小工具,供用户方便地使用操作系统功能 (YY):排序算法Shell是希尔排序名称。

    3.9K20

    WAF绕过技巧浅谈

    开始做WAPT之前,我想告诉你一些你可能不知道关于bash通配符东西。 关于通配符 Bash标准通配符(也称为通配符模式)被各种命令行程序用于处理多个文件。...答案是肯定文件系统echo命令支持使用通配符枚举文件目录。例如:echo //ss*。 ? 我们可以具有RCE漏洞URL上使用该命令语法,以获取目标系统上文件目录信息,例如: ?...毫无疑问是创建一个脆弱PHP脚本,并尝试所有可能技术点!在上方截图中可以看到,左上方窗口中我写了一个极为简易Web应用程序(一个执行命令PHP脚本): ?...现在我们来看看具有相同请求右窗口,唯一不同是这里我使用了”?“通配符代替了原来字符。从结果上可以看到Sucuri WAF并未对我们请求进行拦截,我脚本执行了GET给c参数系统命令。...我已经将级别12分组,因为它们之间差异(如上所示)并不会对目标产生影响,所有行为都与以下相同

    2K100

    Web应用程序防火墙(WAF)bypass技术讨论(一)

    ,正斜杠“/”,数字字母来执行系统命令,且可以使用相同数量字符枚举文件并获取其内容。 我举几个例子,例如执行ls命令,可以使用以下语法:/???/?s ?...cmd=cat+/etc/passwd,那么它会被目标WAF阻止,你IP将被永久禁止访问并被标记。如果目标WAF没有足够规则集来阻止像?/查询字符串,那么就能使用通配符来进行绕过。...,列出当前目录扩展名为3个字符所有文件,将列出具有:gif,.jpg,.txt等扩展名文件。 使用此通配符,可以使用netcat来执行反弹shell。...这可以RCE上使用,以便在目标系统上获取文件目录,例如: ? 但是为什么使用通配符(特别是问号)可以逃避WAF规则集?让我先从Sucuri WAF开始解释。...PL1, PL2) 我已将1级2级分组,因为它们差异(如上图所示)不会影响我们目标,所有行为都与下面描述相同

    2.9K40

    Linux Shell 通配符、元字符、转义符最全使用攻略

    一、linux shell通配符(wildcard) 通配符是由shell处理(不是由所涉及到命令语句处理,其实我们shell各个命令也没有发现有这些通配符介绍), 它只会出现在 命令“参数”...当shell“参数”遇到了通配符时,shell会将其当作路径或文件名去磁盘上搜寻可能匹配:若符合要求匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理...了解了shell通配符,我们现在看下,shell常见通配符有那一些了。 shell常见通配符: 需要说明是:通配符看起来有点象正则表达式语句,但是它与正则表达式不同,不能相互混淆。...可以看到shell 元字符,基本是作用在命令上面,用作多命令分割(或者参数分割)。因此看到与通配符相同字符,但是实际上作用范围不同。所以不会出现混淆。...四、shell解析脚本过程 看到上面说这些,想必大家会问到这个问题是,有这么想特殊字符,通配符,那么 shell得到一条命令,到达是怎么样处理呢?

    5.9K60

    【 Node.js 进阶】你应该知道 NPM 知识都在这!

    参数即可,其作用与一路回车相同,这样生成文件中就包含 package.json 文件 自定义 npm init 行为 npm init 命令原理并不复杂,调用 shell 脚本,输出一个初始化...这里还要提一下上面说钩子,npm_lifecycle_event可以钩子配合使用,利用这个变量,同一个脚本文件里面,为不同 npm scripts 命令编写代码。请看下面的例子。...环境变量常用小技巧 env 命令可以列出所有环境变量 npm run env shell脚本输出环境变量 echo PATH shell 脚本设置环境变量 echo PATH = /usr/local...前面已经说了 bin 文件产生,有了 bin 字段,安装这个模块时候,node_modules 下面的 .bin/文件夹 下会有对应模块文件,模块文件相同,然后我们就可以通过调用这个文件脚本方法传入参数了...原理我们也看了,因为交给 shell 去解释执行,说明配置脚本可以是任意能够 shell 运行命令,而不仅仅是 node 脚本或者 js 代码。

    1.5K10

    使用 Make 构建网站

    (题图:国家考古博物馆,西班牙,摄于2014年8月) 一、Make优点 首先解释一下,为什么要用Make。 目前,网站项目(尤其是Node.js项目)有三种构建方案。...npm run可以认为是make简化形式,只适用于简单项目,而Grunt、Gulp那样工具,有很多问题。 (1)插件问题 GruntGulp操作,都由插件完成。...PATH := node_modules/.bin:$(PATH) SHELL := /bin/bash 上面代码PATHSHELL都是BASH变量。它们被重新赋值。...上面代码shell函数调用find命令,找出lib目录下所有js文件,保存在变量js_files。然后,就可以用jshint检查这些文件。 使用时调用下面的命令。...首先获取所有的Coffee脚本文件,存放在变量sourcefiles,函数wildcard用来扩展通配符

    3.2K40

    Makefile教程

    2.语法规则 不同厂商Makefile语法上可能会有细微出入,但Makefile主线核心是文件依赖。...有关这一部分内容,请参考文末参考资料。 5.注释。Makefile只有行注释,LinuxShell脚本一样,其注释是用“#”字符,这个就像C/C++“//”一样。...(2)当Makefile内嵌shell脚本时,Makefile每一行shell脚本需要一个shell进程来执行,不同行之间变量值不能传递。所以,Makefileshell不管多长也要写在一行。...shell脚本变量引用方式是$variableName${variableName},不能通过$(variableName)来引用。...通配符*则不具备上述功能。尤其是Makefile,当变量定义或者函数调用时,通配符%展开功能就失效了。此时需要借助wildcard函数。通配符*常用于wildcard函数,二者应用范围不同

    4K53

    Shell 快速指南

    业界所说 shell 通常都是指 shell 脚本,但 shell shell script 是两个不同概念。...zsh - 功能强大 shell脚本语言。 指定脚本解释器 shell 脚本,#! 告诉系统其后路径所指定程序即是解释此脚本文件 Shell 解释器。#!...非交互模式 简单来说,你可以将 shell 非交互模式理解为执行 shell 脚本非交互模式下,shell 从文件或者管道读取命令并执行。...这里可以找到有关bash单双括号区别的答案。 使用if if使用上跟其它语言相同。如果括号里表达式为真,那么thenfi之间代码会被执行。fi标志着条件代码块结束。...函数 脚本,我们可以定义并调用函数。跟其它程序设计语言类似,函数是一个代码块,但有所不同。 bash ,函数是一个命令序列,这个命令序列组织某个名字下面,即 函数名 。

    3.3K101

    《前端运维》一、Linux基础–03Shell基础及补充「建议收藏」

    Shell是解释执行脚本语言,Shell可以直接使用Linux系统命令。诶?脚本语言?javascript不也是脚本语言?是的。Shelljavascript都是脚本语言。...换句话说,javascript代码可以浏览器运行,Shell可以Linux中使用,它们所扮演角色都是类似的,只不过运行平台不同,道理是相通。...2.2、alias,alias [别名]=[指令名称] 别名,简单来说,类似于npm包管理package.jsonscript,一个简短命令复杂命令间建立联系,可以让命令使用更便捷。...2.8、通配符 用来匹配目录或文件名,也就是说操作文件时候,支持下面的字符来匹配。 通配符 作用 ?...$() 反引号一样 # shell脚本,#开头行代表注释 $ 用于调用变量值 \ 转义符号 今天内容比较散乱,主要作为承上启下作用。

    57720

    Linux ShellBash wildcard通配符、元字符、转义符使用

    一、linux shell通配符(wildcard) 通配符是由shell处理(不是由所涉及到命令语句处理,其实我们shell各个命令也没有发现有这些通配符介绍), 它只会出现在 命令“参数...当shell“参数”遇到了通配符时,shell会将其当作路径或文件名去磁盘上搜寻可能匹配:若符合要求匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理...需要说明是:通配符看起来有点象正则表达式语句,但是它与正则表达式不同,不能相互混淆。把通配符理解为shell 特殊代号字符就可。而且涉及只有,*,? [] ,{} 这几种。...因此看到与通配符相同字符,但是实际上作用范围不同。所以不会出现混淆。...四、shell解析脚本过程 看到上面说这些,想必大家会问到这个问题是,有这么想特殊字符,通配符,那么 shell得到一条命令,到达是怎么样处理呢?

    3K10

    npm 常用配置

    npm run 会创建一个新shell,执行指定命令,并将node_modules/.bin 加入 PATH 变量。当脚本内容结束,则子 shell 关闭,回到父 shell 。...由于 npm 脚本唯一要求就是可以 Shell 执行,因此它不一定是 Node 脚本,任何可执行文件都可以写在里面。 npm 脚本退出码,也遵守 Shell 脚本规则。...version":xxx,"name":xx},则npm scripts添加环境变量: npm_package_name npm_package_version。...与 Gulp 完成任务,实在不行还可以写 NodeJS 代码来完成; 因为 npm scripts 一个 Shell 环境执行,而 Shell 天生支持流; 几个常见命令操作符&&//...|是跨平台,对于一些 Linux/Mac Shell 命令可以使用 shelljs 来实现跨平台; 而 npm scripts 不足是由于package.json文件不可以写注释,对于复杂构建任务

    1.7K30

    测试框架 Mocha 实例教程

    Mocha(发音"摩卡")诞生于2011年,是现在最流行JavaScript测试框架之一,浏览器Node环境都可以使用。 所谓"测试框架",就是运行测试工具。...$ npm install --global mocha 二、测试脚本写法 Mocha作用是运行测试脚本,首先必须学会写测试脚本。所谓"测试脚本",就是用来测试源码脚本。...除了使用Shell通配符,还可以使用Node通配符。 $ mocha 'test/**/*.@(js|jsx)' 上面代码指定运行test目录下面任何子目录、文件后缀名为js或jsx测试脚本。...注意,Node通配符要放在单引号之中,否则星号(*)会先被Shell解释。 上面这行Node通配符,如果改用Shell通配符,要写成下面这样。 $ mocha test/{,**/}*....Mochadescribe块之中,提供测试用例四个钩子:before()、after()、beforeEach()afterEach()。

    2.3K50

    《前端运维》一、Linux基础--03Shell基础及补充

    Shell是解释执行脚本语言,Shell可以直接使用Linux系统命令。诶?脚本语言?javascript不也是脚本语言?是的。Shelljavascript都是脚本语言。...换句话说,javascript代码可以浏览器运行,Shell可以Linux中使用,它们所扮演角色都是类似的,只不过运行平台不同,道理是相通。...2.2、alias,alias [别名]=[指令名称] 别名,简单来说,类似于npm包管理package.jsonscript,一个简短命令复杂命令间建立联系,可以让命令使用更便捷。...2.8、通配符 用来匹配目录或文件名,也就是说操作文件时候,支持下面的字符来匹配。 通配符 作用 ?...$() 反引号一样 # shell脚本,#开头行代表注释 $ 用于调用变量值 \ 转义符号 今天内容比较散乱,主要作为承上启下作用。

    67120
    领券