20

如标题所示,operator的反义词是什么?我真的在谷歌上搜索了一下,我只资助了以下解决方案: 是否有任何运营商可以验证运营商的反面"=~" [[ ! $str1 =~ $str2 ]]"=~"

谢谢。

4

2 回答 2

15

直到 4.3 版(在本文发布时为当前版本)的 bash 中没有对立的运算符。

[[ ! str1 =~ str2 ]]是要走的路。

对于此类问题,您应该使用man而不是您最喜欢的搜索引擎。所涉及的工具的手册页——在这种情况下是 bash——是权威的,'web 是传闻(当然,除非它引导你进入手册页 ;-))。

于 2014-05-26T12:54:29.930 回答
2

答案是在 bash 中没有这样的运算符,它在 perl 中没有,如果你!~不想使用已知( [[ ! $str1 =~ $str2 ]] )的目的,那么你必须使用grepor perl。就像是:

x="I like negation"
y="like"


if [[ $(perl -ne "!/$y/ && print" <(echo $x)) == "$x" ]]; then 
echo "Contains"
else
echo "Doesn't contain"

但是我没有找到任何错过!~bash 的理由,因为[[ ! $str1 =~ $str2 ]]它很好地解决了这个目的。可能是它不在 bash 中的原因。

考虑 DevSolar 对这个答案的第一条评论,当你使用grepor时它仍然成立perl,这再次充分[[ ! $str1 =~ $str2 ]]利用了可用的资源。

于 2014-05-26T13:06:31.450 回答