给命令中的 +$ 有什么用?



此命令中的+$是什么:[[$1=~^[0-9]+$]]

+适用于[0-9],而不是$

预期的命令是:

[[ $1 =~ ^[0-9]+$ ]]

它检查$1是否只包含数字,例如1239(但不包括123ffoo或空字符串(。

它分解为:

  • [[,启动Bash扩展测试命令
  • $1,第一个参数
  • =~,Bash扩展测试命令regex匹配运算符
  • ^[0-9]+$,要匹配的正则表达式:
    • ^,与线路起点匹配的锚点
    • [0-9]+,一个或多个数字
      • [0-9],一位数字
      • +,前一个原子中的一个或多个
    • $,与线路末端匹配的锚
  • ]]终止测试命令
regexp中的

+匹配"前面模式的1倍或更多倍",$表示字符串锚的结束。

^是字符串锚的开头($的自然补码(,[0-9]匹配任何一个数字(在0到9的范围内(。

相关内容

  • 没有找到相关文章

最新更新