Linux /bin/sh check if string contains X
在shell脚本中,如何确定字符串是否包含在另一个字符串中。在bash中,我只使用=~,但我不知道如何在/bin/sh中做同样的事情。这是可能的吗?
您可以使用case语句:
1 2 3 4 | case"$myvar" in *string*) echo yes ;; * ) echo no ;; esac |
你所要做的就是用
例如:
1 2 3 | case"HELLOHELLOHELLO" in *HELLO* ) echo"Greetings!" ;; esac |
或者换一种说法:
1 2 3 4 5 6 | string="HELLOHELLOHELLO" word="HELLO" case"$string" in *$word*) echo"Match!" ;; * ) echo"No match" ;; esac |
当然,您必须知道,除非您打算全局匹配,否则
您可以定义一个函数
1 2 3 4 5 | matches() { input="$1" pattern="$2" echo"$input" | grep -q"$pattern" } |
获取正则表达式匹配。注:用法为
1 | if matches input pattern; then |
(没有
你可以试试在"这是测试"中查找"his"
1 2 3 4 5 | TEST="This is a test" if ["$TEST" !="${TEST/his/}" ] then echo"$TEST" fi |