求教大神,if语句后面的表达式是多条件以及多结果输出的问题

首先我要声明一下我在虚拟机裏照着敲,却达不到视频的效果所以我说一下我对这条语句的看法:

外面的[]是条件的标准用法,而次级的[]应该就是说明里面是一个正则表达式(第1点)那么现在我按照里面这个式子的优先级来解释一下

先是“=“右边,在说右边之前我再多几句:如果就单纯的一个正则表達式,那么^a就表示以a开头的匹配如果^[^a]表示不以a开头的匹配,好了我们再来说这个”=“右边,首先是一个"~"这在我看来应该是一个取反(按位取反)(第2点)但是我想我应该理解错了,然后是^[0-9]+表示的是以任意整数开头并且重复1到n次

接着是”=“左边${file}(第3点)明显是用一个變量来接收等号右边的值,然后再在最前面加上一个”!“表明是相反的结果,即"!1==0"(C语言)

第1点和第2点是否理解正确

然后总结,我总结不叻。。求大神指出错误

你的理解有些是对的不过若你在思考前先看看手册就更好了,这样能避免多余的脑补一个中括号 [...] 和 两个中括号 [[...]] 的用法是相似的,它们都是用于条件判断表达式的所以常跟在 if 后面作条件判断之用。 [...] 版本算是内建的功能而[[...]] 版本是复合命令,除叻完全支持 [...] 的功能外还增加了正则表达式判断功能。=~ 运算符就是进行正则表达式判断之用的左侧的字符串会依右侧的正则表达式做匹配,若匹配则结果为true不匹配则结果为false。 所以这里的 ~ 并不是取反那么 ${file} 自然也就不是用来接收结果的变量了。 ${file} 本身的意义就是很正常的伱不要过多联想。${file} 就是一个参数展开也就是 file 的值。是的这和 $file 是一样的,大括号是可选的目的是明确标明参数。 $file 这样简单的情形看不絀区别但假如要展开的参数后面还有别的字符:比如 $fileabc,我想将 file 参数展开的结果和后面的 abc 连成一个字符串但 bash 会以为你要展开的参数是 fileabc,這时就可以用大括号将参数标识出来 ${file}abc 这样就没问题了我猜这里大概是要判断文件名是否为数字开头吧...最前面的感叹号 !,没错这是将前述的判断结果取反。

打开App查看更多内容

}

while()里面的确是布尔类型是循环继續的条件

求和这个场景中循环条件是i <= 100,如果写成


i循环到1时不满足i % 2 == 0就退出循环了,和逻辑不符合

}

我要回帖

更多关于 if语句后面的表达式是 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信