Car*_*rum 46
操作员
=~叫什么?
我不确定它有名字.在bash的文件只是调用它的=~操作.
它只用于比较左侧的右侧吗?
右侧被视为扩展正则表达式.如果左侧匹配,则操作员返回0,1否则.
运行测试时为什么需要双方括号?
因为=~是[[ expression ]]复合命令的运算符.
Wir*_*nto 17
该=~运营商正则表达式匹配运算符.这个运算符的灵感来自于Perl使用相同的运算符进行正则表达式匹配.
的[[ ]]是通过bash的特殊处理; 考虑一个增强版本的[ ]构造:
[ ]实际上是一个shell内置命令,它实际上可以作为外部命令实现.看看你的/ usr/bin,很可能有一个名为"["的程序!严格来说,[ ]不是bash语法的一部分.
[[ ]]是一个shell关键字,这意味着它是shell语法的一部分.在这个构造中,一些保留字符改变了意义.例如,( )意味着像其他编程语言一样的括号(不启动子shell来执行paretheses中的内容).另一个例子是,<并且>意味着小于和大于,而不是shell重定向.这允许逻辑表达式的更"自然"外观,但对于新手bash程序员来说可能会令人困惑.
Wirawan
该=~运算符是模式匹配运算符。test当或 在内部[ ]用于条件语句时,它在原始 Bourne shell 中不存在。
该let命令或[[ ]]内部命令比 具有更多功能test,包括模式匹配功能。这就是为什么在使用 时必须使用[[ ]], 而不是, 。[ ]=~
| 归档时间: |
|
| 查看次数: |
54366 次 |
| 最近记录: |