去年年底我们在EasyDSS上增加了水印功能,用户可以自由定义水印的格式及位置,不管是网页端的视频还是手机端的视频,都支持添加水印,如果大家对水印功能的开发感兴趣,可以参考我们之前的EasyDSS新增生成水印模块记录...在对手机端视频的水印生成测试过程中,我们发现在点播服务中添加水印,添加后生成的视频水印最终位置与我们最开始定义的位置不同。...定义位置如下: image.png 视频输出时显示的位置如下: image.png 经过分析和测试,我们猜测应该是水印框太大导致的问题,在设置尺寸方法中又除以二,数据提交后视频尺寸返回原来的尺寸,水印图所在的...视频图片尺寸通过父组件中的oriention.mh/wh设置,所以直接在父组件赋值的地方判断手机端的视频设置,不需要在设置视频尺寸方法中进行二次缩小。...parseInt(str[1]) % 640 : 0; } 修改后再次进行测试,定义位置如下: image.png 视频输出后水印显示位置与定义位置同步: image.png
一次性操作多个文件时,命令行提供通配符(wildcards),用一种很短的文本模式(通常只有一个字符),简洁地代表一组路径。 ? 通配符又叫做 globbing patterns。...匹配了两个字符。 注意,?不能匹配空字符。也就是说,它占据的位置必须有字符存在。 二、* 字符 *代表任意数量的字符。...1-3].txt report4.txt report5.txt 上面代码中,[!1-3]表示排除1、2和3。 五、{...} 模式 {...} 表示匹配大括号里面的所有模式,模式之间使用逗号分隔。...大括号可以嵌套。 $ echo {j{p,pe}g,png} jpg jpeg png 大括号也可以与其他模式联用。...$ ls a*.txt ab.txt 上面命令的执行过程是,Bash 先将a*.txt扩展成ab.txt,然后再执行ls ab.txt。 (2)通配符不匹配,会原样输出。
三.大括号、花括号 {} 常规用法 1.大括号拓展。(通配(globbing))将对大括号中的文件名做扩展。在大括号中,不允许有空白,除非这个空白被引用或转义。...第一种:对大括号中的以逗号分割的文件列表进行拓展。如 touch {a,b}.txt 结果为a.txt b.txt。...ex2.sh #ls {ex{1..3},ex4}.sh ex1.sh ex2.sh ex3.sh ex4.sh #ls {ex[1-3],ex4}.sh ex1.sh ex2.sh ex3....(因为变量var此时为空,所以这两种说法是等价的) 3.${var:?string}替换规则为:若变量var不为空,则用变量var的值来替换${var:?...结构中的pattern支持通配符,表示零个或多个任意字符,?表示仅与一个任意字符匹配,[…]表示匹配中括号里面的字符,[!…]表示不匹配中括号里面的字符。
本文记录一个 UWP 或 WinUI3 的开发过程中的问题,当开发者调用 AddHandler 时,所需的 Handler 参数类型为 RoutedEventHandler 类型,然而实际上正确类型是需要与所监听事件匹配才能符合预期工作...且在 WinUI3 的技术底层设计上就存在无解问题,那就是许多错误只依靠 COM 的 HR 错误号信息,开发者难以了解真正意义上的调错信息和具体的错误原因。...应用开发者又不知道 WinUI3 底层投了哪些毒,难以知道所说的参数错误具体指的是什么错误。...这一点也是制约了 WinUI 3 的生态,但这一点又是属于 WinUI 3 的基础设计的问题,预估难以更改 这一次的错误信息里面在 Data 里面还包含几条看似没有用,实际也没有用的信息,分别如下 +...不支持此接口 的描述信息,合起来就是:遇到参数错误了,因为底层不支持参数传进来的此接口 但是就是不告诉大家,具体错误的是哪个参数,且错在哪里了。
(通配(globbing))将对大括号中的文件名做扩展。在大括号中,不允许有空白,除非这个空白被引用或转义。第一种:对大括号中的以逗号分割的文件列表进行拓展。...3、四种模式匹配替换结构 模式匹配记忆方法: # 是去掉左边(在键盘上#在$之左边) % 是去掉右边(在键盘上%在$之右边) #和%中的单一符号是最小匹配,两个相同符号是最大匹配。...结构中的pattern支持通配符,*表示零个或多个任意字符,?表示仅与一个任意字符匹配,[...]表示匹配中括号里面的字符,[!...]表示不匹配中括号里面的字符。...第二种模式:${var:num1:num2},num1是位置,num2是长度。表示从$var字符串的第$num1个位置开始提取长度为$num2的子串。不能为负数。...(2)单大括号,{ cmd1;cmd2;cmd3;} 在当前shell顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后必须有分号, 第一条命令和左括号之间必须用空格隔开
(通配(globbing))将对大括号中的文件名做扩展。在大括号中,不允许有空白,除非这个空白被引用或转义。第一种:对大括号中的以逗号分割的文件列表进行拓展。...3、四种模式匹配替换结构 模式匹配记忆方法: # 是去掉左边(在键盘上#在之左边) % 是去掉右边(在键盘上%在之右边) #和%中的单一符号是最小匹配,两个相同符号是最大匹配。...结构中的pattern支持通配符,*表示零个或多个任意字符,?表示仅与一个任意字符匹配,[…]表示匹配中括号里面的字符,[!…]表示不匹配中括号里面的字符。...第二种模式:{var:num1:num2},num1是位置,num2是长度。表示从var字符串的第num1个位置开始提取长度为num2的子串。不能为负数。...(2)单大括号,{ cmd1;cmd2;cmd3;} 在当前shell顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后必须有分号, 第一条命令和左括号之间必须用空格隔开
* 万能匹配字符,用于文件名匹配(这个东西有个专有名词叫 file globbing),或者是正则 表达式中.注意:在正则表达式匹配中的作用和在文件名匹配中的作用是不同的....在 file globbing 中和在正则表达式中一样匹配任意的单个字符. $ 变量替换;在正则表达式中作为行结束符. ${} 参数替换 $*,$@ 位置参数 $?...大括号扩展,如: cat {file1,file2,file3} > combined_file # 把 file1,file2,file3 连接在一起,并且重定向到 combined_file 中...{txt,backup} # 拷贝"file22.txt" 到"file22.backup"中 一个命令可能会对大括号中的以逗号分割的文件列表起作用[1]. file globbing 将对 大括号中的文件名作扩展...3、检查命令行的第一个令牌是否为某命令的别名,这需要将此令牌与别名(alia)列表逐个比较,如果匹配,说明该令牌是别名,则将该令牌替换掉,返回步骤1,否则进入步骤4。
④bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。 三)大括号、花括号 {} 1、常规用法。 ①大括号拓展。(通配(globbing))将对大括号中的文件名做扩展。...在大括号中,不允许有空白,除非这个空白被引用或转义。第一种:对大括号中的以逗号分割的文件列表进行拓展。如 touch {a,b}.txt 结果为a.txt b.txt。.../home/bash # ls {ex[1-3],ex4}.sh ex1.sh ex2.sh ex3.sh ex4.sh ②代码块,又被称为内部组,这个结构事实上创建了一个匿名函数 。...3)四种模式匹配替换结构:${var%pattern},${var%%pattern},${var#pattern},${var##pattern} 第一种模式:${variable%pattern...表示不匹配中括号里面的字符 bogon:/home/bash # var=testcase bogon:/home/bash # echo $var testcase bogon:/home/bash
NGINX是一个免费的,开源的,高性能的HTTP服务器和反向代理,以及IMAP / POP3代理服务器。NGINX以其高性能,稳定性,丰富的功能集,简单的配置和低资源消耗而闻名。...一个简单的指令由名称和参数组成,用空格分隔,以分号(;)结尾。块指令与简单指令具有相同的结构,但它不是以分号结尾,而是以大括号({})包围的一组附加指令结束。...其他前缀和无任何前缀都用于普通字符,而~是区分大小写的匹配,~用于不区分大小写的匹配,还可以使用“!”...(〜和〜 *)的所有位置指令。...而/static/c.png则优先匹配到规则B 访问/a.PNG时则匹配 规则E,而不会匹配规则D,因为规则E不区分大小写。
使用双中括号带来的好处用下面几个例子最能表现: t="abc123" [[ "$t" == abc* ]] # true (globbing比较) [[ "$t" == "abc*"...如果你的表达式里有空格,你可以把它存储到一个变量里: r="a b+" [[ "a bbb" =~ $r ]] # true 按Globbing方式的字符串比较也可以用到case语句中:...or ${::} slice1="${f:6}" # = "path2/file.ext" slice2="${f:6:5}" # = "path2" slice3=...}" # = "ext" # 以贪婪匹配方式删除字符串头部 filename="${f##*/}" # = "file.ext" # 删除字符串尾部 dirname="${f%/*}"...# = "path1/path2" # 以贪婪匹配方式删除字符串尾部 root="${f%%/*}" # = "path1" 避免使用临时文件 有些命令需要以文件名为参数,这样一来就不能使用管道
这章介绍 Redis 的5种数据类型,每节都由“介绍”、“命令”、“实践”和“命令拾遗”四部分组成。这种学习思路很符合初学者上手。 这节是几个基础的命令。...1 获得符合规则的键名列表 KEYS pattern pattern 采用的通配符叫做 globbing patterns。...*:匹配一个路径部分中0个或多个字符,注意不匹配以.开始的路径,如文件.a。 ?:匹配一个字符。 […]:匹配一系列字符,如[abc]匹配字符a, b, c,在[…]和[!...…]表示匹配不在列表中的字符,如[abc]匹配除了a, b, c以外的字符。...integer) 0 127.0.0.1:6379> exists b (integer) 0 127.0.0.1:6379> exists bbr (integer) 0 127.0.0.1:6379> 3
file(GLOB_RECURSE variable [RELATIVE path] [FOLLOW_SYMLINKS] [globbing expressions]...)...读文件的位置从offset开始,最多读numBytes个字节。如果指定了HEX参数,二进制代码将会转换为十六进制表达方式,并存储在变量里。...- 匹配所有扩展名是vta,...,vtz的文件。 f[3-5].txt - 匹配文件f3.txt, f4.txt, f5.txt。...GLOB_RECURSE选项将会生成一个类似于通常的GLOB选项的list,只是它会寻访所有那些匹配目录的子路径并同时匹配查询表达式的文件。...如果指定了EXPECTED_MD5 sum选项,下载操作会认证下载的文件的实际MD5和是否与期望值匹配。如果不匹配,操作将返回一个错误。
-n字串 字串长度不伪则为真。 (3)文件测试: -e文件名 如果文件存在则为真。 -r文件名 如果文件存在且可读则为真。 -w文件名 如果文件存在且可写则为真。 ...相匹配的部分,条件是value的开头与pattern相匹配 #与##的区别在于一个是最短匹配模式,一个是最长匹配模式...4 [ $a == z* ] # File globbing 和word splitting将会发生 5 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为...true 一点解释,关于File globbing是一种关于文件的速记法,比如"*.c"就是,再如~也是. ...但是file globbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像. != 不等于,如:if [ "$a" !
代码风格统一有助于团队协作与代码review,业界用的比较多的是google的风格,本节来点不一样的,看看咱们平时用的比较多的工具curl团队的代码规范是什么样子的。...curl简单说一下,它在命令行或脚本中传输数据非常有用,大家也肯定用过,其源码实现可以在github上查看 https://github.com/curl/curl 下面我们来从几个方面看看curl的C...文件局部函数应该被声明为静态的,建议是小写字母名称。 缩进 只使用空格进行缩进,不使用制表符。每个新的开放大括号使用两个空格。...else 子句到条件表达式时,我们将其添加到关闭大括号后的新行。...ptr) return NULL; 新块在新行上 永远不会在同一行上写多个语句,即使是短的 if() 条件也不例外。
Shell的两种主要语法类型有Bourne和C这两种语法彼此不兼容,由于Linux的标准Shell是Bash!Bash和sh是相互兼容的。...# 4 ---- 5.大括号、花括号 {} 常规用法: 大括号拓展:通配(globbing))将对大括号中的文件名做扩展。...表示仅与一个任意字符匹配,[…]表示匹配中括号里面的字符,[!…]表示不匹配中括号里面的字符 (基础正则)。.../hhme/centos echo ${var//o/h} #完全匹配替换 /hhme/cenths ---- 6.符号$后的括号以及大括号 (1)${a} 变量a的值, 在不引起歧义的情况下可以省略大括号...file2、$3=file3、$4=file4 #执行一次shift命令后,各位置变量为: $2=file2、$3=file3、$4=file4 #在执行一次: $3=file3、$4=file4
请求中的主机头(Host)字段,如果请求中的主机头不可用或者空,则为处理请求的server名称(处理请求的server的server_name指令的值),值为小写,不包含端口。..."CURL命令"; ~*iphone "IOS端"; ~*android "Android端"; } server { listen 80; location /echo {.../]# curl 172.16.0.1/echo hello 您使用的是:CURL命令 条件判断 if --语法 if(condition){…} 用于检查一个条件是否符合,如果条件符合,则执行大括号内的语句...if指令不支持嵌套,不支持多个条件&&和||处理 --条件(condition)判断标识 '~' 为区分大小写匹配 '~*' 为不区分大小写匹配 '!...~' 区分大小写不匹配 '!~*' 不区分大小写不匹配 --运算符 '-f'和'!-f' 判断是否存在文件 '-d'和'!-d' 判断是否存在目录 '-e'和'!
但curl不支持递归下载。 curl的URL可以表示成如下格式: #可以将几个个字符串放到大括号里用逗号分隔来表示多个URL http://site....#指定数据可以是JSON格式的字符串 curl -L http://127.0.0.1:2380/v2/admin/config -XPUT -d '{"activeSize":3, "removeDelay...、TTL、并且可以配置路由实现QOS 可以作用的位置:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD 3、nat 用于网络地址转换 可以作用的位置:PREROUTING...如果本表中所有的规则都没有匹配上,则进行默认的策略处理。(注意:同样的表可以作用于不同的链,不同的位置又可以有多张表。...在定义规则或跟踪数据包在防火墙内的流动时,一定要清楚的知道当前数据包在哪个位置、进入了哪张表、匹配到表中相应规则链的哪条语句) COMMAND 选项: -A 追加规则(尾部)。
正则表达式的一部分可以用圆括号括起来,方便之后按照顺序用$1-$9来引用,例如上例中的$1与$2引用方式。 叁 ---- 使用curl命令测试 rewrite 规则。...curl -IL test.com HTTP/1.1 301 Moved Permanently Server: nginx 省略.......可以从返回结果中看到 curl命令一共请求了两次,第一次服务器返回301状态码 test.com被重定向新的Location,第二次访问新的地址是 www.test.com 返回200状态码 。...permanent; }} 伍 ---- if 指令 语法: if (condition) { … } 默认值: none 使用字段: server, location 功能: 判断一个条件,如果条件成立则后面的大括号内的指令将执行...正则表达式的模式匹配使用符号 ~*或~: ~为区分大小写的匹配、~\*不区分大小写的匹配(abc匹配ABC),!~和!~\*意为"不匹配的"。 测试目标 -f/-d/-e/-x 使用-f和!
>> y修饰符的作用与g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。...不同之处在于,g修饰符只要剩余位置中存在匹配就可,而y修饰符确保匹配必须从剩余的第一个位置开始,这也就是“粘连”的涵义。...// 在3号位置匹配成功 console.log(match.index) // 3 // 下一次匹配从4号位开始 console.log(regexp.lastIndex) // 4 // 4号位开始匹配失败...3号位置开始匹配 regexp.lastIndex = 3 // 3号位置是粘连,匹配成功 const match = regexp.exec('xaxa') console.log(match.index....$ / u.test(s) // true // 上面代码表示,如果不添加u修饰符,正则表达式就会认为字符串为两个字符,从而匹配失败。
领取专属 10元无门槛券
手把手带您无忧上云