亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 怎樣用if判斷一個(gè)字符串是有包含有另一個(gè)字符串。 [打印本頁]

作者: ccf    時(shí)間: 2006-08-23 08:27
標(biāo)題: 怎樣用if判斷一個(gè)字符串是有包含有另一個(gè)字符串。
string=abdefg
substring=bde

怎樣用if判斷string是否包含substring,謝謝
作者: waker    時(shí)間: 2006-08-23 09:04
如果是bash 3+
可以用 [[ "$string" =~ "$substring" ]]
但要注意 右邊是支持EREG的

也可以試試 case
作者: wd    時(shí)間: 2006-08-23 09:50
我都是這樣判斷的

str="awef"
substr="a*"

bstr=${str%${substr}}

然后比較${#str}和${#bstr}是不是一樣。
作者: ccf    時(shí)間: 2006-08-23 10:22
bash --version
GNU bash, version 2.05b.0(1)-release (i686-pc-linux-gnu)
Copyright (C) 2002 Free Software Foundation, Inc.
果然不支持=~
case 怎么個(gè)用法,我試了一下這樣行不通。
case abc in
        *$1*)
          echo right;
        ;;
        *)
          echo all;
        ;;
esac
作者: waker    時(shí)間: 2006-08-23 10:33
那里不通了?用小棍兒捅捅?


  1. [waker@proxy ~]$ set ab
  2. [waker@proxy ~]$ case abc in
  3. >         *$1*)
  4. >           echo right;
  5. >         ;;
  6. >         *)
  7. >           echo all;
  8. >         ;;
  9. > esac
  10. right
  11. [waker@proxy ~]$ set abcde
  12. [waker@proxy ~]$ case abc in
  13. >         *$1*)
  14. >           echo right;
  15. >         ;;
  16. >         *)
  17. >           echo all;
  18. >         ;;
  19. > esac
  20. all
復(fù)制代碼

作者: alexinuk    時(shí)間: 2006-08-23 11:14
string="abdefg"
substring="bde"
case $substring in
     $string)
       echo true
          ;;
     *)
       echo false
          ;;
     esac
這里面為什么比較出來的結(jié)果總是false,有哪錯(cuò)了嗎?
作者: ccf    時(shí)間: 2006-08-23 11:15
謝謝用小棍兒捅通了。我把兩個(gè)參數(shù)搞反了,
作者: 寂寞烈火    時(shí)間: 2006-08-23 11:17
try:
[[ $string == *$substring* ]]
作者: ccf    時(shí)間: 2006-08-23 11:53
原帖由 寂寞烈火 于 2006-8-23 11:17 發(fā)表
try:
[[ $string == *$substring* ]]


謝謝,測(cè)試通過
作者: 網(wǎng)中人    時(shí)間: 2006-08-23 14:46
string="abdefg"
substring="bde"
if echo $string | grep -q "$substring"
then
    ....
else
    ....
fi
作者: sosogh    時(shí)間: 2006-08-23 16:08
[[ $string == *$substring* ]]

case abc in   *$1*)

請(qǐng)問一下為什么在這2個(gè)cmd中,pattern都要加上*
而在grep中的pattern不用.*?

echo "$tring" | grep -i "$substring"
echo "$tring" | grep -i ".*$substring.*"
都可以

但是
[[ $string == $substring ]]

case abc in   $1)
好象行不通



是不是bash對(duì)pattern的匹配

grep,sed等對(duì)pattern的匹配
是不同的?


謝謝!




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2