Shell 如何在字符串中搜索特定字符?

Shell 如何在字符串中搜索特定字符?,shell,unix,Shell,Unix,字符串: name@gmail.com 要检查: @ .com 如果找到这两个,我想将布尔值设置为true bool_one=true 我该怎么做?我试过了 if [ $word|grep[@] = $word] 但它不起作用。您可以这样做: s='name@gmail.com' [[ "$s" == *@*.com ]] && echo "true" 你也可以 s='name@gmail.com' [[ "$s" =~ (.*)@(.*)\.com ]] &am

字符串:

 name@gmail.com
要检查:

@
.com
如果找到这两个,我想将布尔值设置为true

bool_one=true
我该怎么做?我试过了

if [ $word|grep[@] = $word]

但它不起作用。

您可以这样做:

s='name@gmail.com'

[[ "$s" == *@*.com ]] && echo "true"
你也可以

s='name@gmail.com'

[[ "$s" =~ (.*)@(.*)\.com ]] && echo "name: ${BASH_REMATCH[1]} domain ${BASH_REMATCH[2]}.com"
可能重复的