【问题标题】:What does the =~ operator do? [duplicate]=~ 运算符有什么作用? [复制]
【发布时间】:2015-01-07 10:58:09
【问题描述】:

我遇到过这个运算符=~,但不知道它是做什么的。有 bash 知识的人可以帮助我吗?

【问题讨论】:

标签: bash


【解决方案1】:

man bash

/=~

另外一个二元运算符 =~ 可用,其优先级与 == 和 != 相同。使用时,运算符右侧的字符串被视为 扩展正则表达式并进行相应匹配(如 regex(3) 中)。如果字符串与模式匹配,则返回值为 0,否则为 1。如果常规 表达式语法错误,条件表达式的返回值为 2。如果启用了 shell 选项 nocasematch,则不执行匹配 关于字母字符的情况。正则表达式中带括号的子表达式匹配的子字符串保存在数组变量中 BASH_REMATCH。 BASH_REMATCH 的索引为 0 的元素是匹配整个正则表达式的字符串部分。索引为 n 的 BASH_REMATCH 的元素 是匹配第 n 个带括号的子表达式的字符串部分。

【讨论】:

    【解决方案2】:

    ~ 中保存的是您的主目录(例如:/home/username),= 是赋值运算符。

    如果您在 bash 中运行此代码:

    x=~       # variable x will hold string value /home/your_username
    echo $x   # print variable x via echo command
    

    它会打印出类似:/home/your_username

    【讨论】:

    • 是的,但根本不可能是 OP 所要求的。 Bash 确实有一个 =~ 运算符;查看其他答案。
    猜你喜欢
    • 2020-07-21
    • 2017-10-26
    • 2012-10-03
    • 2011-08-19
    • 2018-01-03
    • 2013-01-09
    • 2020-04-02
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多