如标题中所示,
"=~"
运营商的相反是什么?
我真的用Google搜索,我只为以下解决方案提供资金:[[ ! $str1 =~ $str2 ]]
是否有任何运算符验证"=~"
运算符的相反?
感谢。
答案 0 :(得分:10)
版本4.3中没有反对操作符(本帖时的当前版本)。
[[ ! str1 =~ str2 ]]
是要走的路。
对于此类问题,您应该使用man
而不是您最喜欢的搜索引擎。涉及的工具的手册页 - 在这种情况下是bash - 是权威的,'网络是传闻(当然,除非它引导你进入手册页;-))。
答案 1 :(得分:2)
答案是在bash中没有这样的运算符如果您不想使用已知的{{},那么 !~
就像在perl中那样1}}出于此目的,您必须使用( [[ ! $str1 =~ $str2 ]] )
或grep
。类似的东西:
perl
但是我没有理由错过bash x="I like negation"
y="like"
if [[ $(perl -ne "!/$y/ && print" <(echo $x)) == "$x" ]]; then
echo "Contains"
else
echo "Doesn't contain"
因为!~
很好地解决了目的。可能是因为它不存在于bash中。
考虑DevSolar对此答案的第一条评论,当您与[[ ! $str1 =~ $str2 ]]
或grep
一起使用时,它会保留,这再次使perl
成为可用的最佳答案。