Give命令中+ $有什么用?

时间:2020-04-20 03:17:52

标签: regex linux validation debian

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

2 个答案:

答案 0 :(得分:2)

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

预期的命令是:

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

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

它分解为:

  • [[,Bash扩展测试命令的开始
  • $1,第一个参数
  • =~,Bash扩展测试命令正则表达式匹配运算符
  • ^[0-9]+$,要匹配的正则表达式:
    • ^,锚定匹配行的开头
    • [0-9]+,一个或多个数字
      • [0-9],一个数字
      • +,一个或多个先前原子
    • $,与行尾匹配的锚点
  • ]]终止测试命令

答案 1 :(得分:1)

正则表达式中的

+匹配“前一模式的1倍或更多倍”,并且$表示字符串锚点的结尾。

^是字符串锚的开头(是$的自然补码),而[0-9]则是匹配任意一位数字(范围为0到9)。