我遇到了这个运算符=~
,并且无法弄清楚它的作用。拥有bash知识的人能帮助我吗?
答案 0 :(得分:2)
man bash
/=~
可以使用另外的二元运算符=〜,其优先级与==和!=相同。使用时,操作员右侧的字符串被视为a 扩展正则表达式并相应地匹配(如在regex(3)中)。如果字符串与模式匹配,则返回值为0,否则返回1。如果经常 表达式在语法上是不正确的,条件表达式的返回值是2.如果启用了shell选项nocasematch,则执行匹配 关于字母字符的情况。与正则表达式中带括号的子表达式匹配的子字符串保存在数组变量中 BASH_REMATCH。索引为0的BASH_REMATCH元素是与整个正则表达式匹配的字符串部分。 BASH_REMATCH的元素,索引为n 是与第n个带括号的子表达式匹配的字符串部分。
答案 1 :(得分:0)
在~
中保存您的主目录(例如:/home/username
),=
是赋值运算符。
如果您在bash中运行此代码:
x=~ # variable x will hold string value /home/your_username
echo $x # print variable x via echo command
它会打印出类似:/home/your_username