【发布时间】:2015-01-07 10:58:09
【问题描述】:
我遇到过这个运算符=~,但不知道它是做什么的。有 bash 知识的人可以帮助我吗?
【问题讨论】:
-
您是在什么情况下找到该运算符的?
-
你试过在bash documentation中搜索吗?
标签: bash
我遇到过这个运算符=~,但不知道它是做什么的。有 bash 知识的人可以帮助我吗?
【问题讨论】:
标签: bash
man bash
/=~
另外一个二元运算符 =~ 可用,其优先级与 == 和 != 相同。使用时,运算符右侧的字符串被视为 扩展正则表达式并进行相应匹配(如 regex(3) 中)。如果字符串与模式匹配,则返回值为 0,否则为 1。如果常规 表达式语法错误,条件表达式的返回值为 2。如果启用了 shell 选项 nocasematch,则不执行匹配 关于字母字符的情况。正则表达式中带括号的子表达式匹配的子字符串保存在数组变量中 BASH_REMATCH。 BASH_REMATCH 的索引为 0 的元素是匹配整个正则表达式的字符串部分。索引为 n 的 BASH_REMATCH 的元素 是匹配第 n 个带括号的子表达式的字符串部分。
【讨论】:
~ 中保存的是您的主目录(例如:/home/username),= 是赋值运算符。
如果您在 bash 中运行此代码:
x=~ # variable x will hold string value /home/your_username
echo $x # print variable x via echo command
它会打印出类似:/home/your_username
【讨论】:
=~ 运算符;查看其他答案。