回答

收藏

如何检查字符串是否包含Bash中的子字符串

技术问答 技术问答 292 人阅读 | 0 人回复 | 2023-09-12

我在 Bash 有一个字符串:
0 A$ W9 y# N) C$ L4 p/ g
    string="My string"
    & x1 w/ k/ ]  x
如何测试它是否包含另一个字符串?
- @: k8 \( P2 ~2 _* L
    if [ $string ?? 'foo' ]; then  echo "It's there!"fi7 @# v+ b# |3 }
??我不知名的接线员在哪里?我用它。echoandgrep吗?0 n! L. ], u/ F. W, t
    if echo "$string" | grep 'foo'; then  echo "It's there!"fi
    3 K  h9 j7 F7 c
看上去有点笨拙。
  F/ f+ ^) K/ ?3 e5 S) ?                                                               
  n5 j+ d3 R$ p3 s    解决方案:                                                               
3 Y' x/ p* Q2 F( o( p                                                                如果使用双括号,也可以在 case 语句外用:
1 b8 f1 h0 i0 d' k2 O6 P. D
    string='My long string'if [[ $string == *"My long"* ]]; then  echo "It's there!"fi
    / V- B- b; T! }3 r
注意针字符串中的空间需要放在双引号之间,*通配符应该在外面。请注意,使用了一个简单的比较操作符(即==),而不是正则表达式运算符=~。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则