繁体   English   中英

Linux / bin / sh检查字符串是否包含X.

[英]Linux /bin/sh check if string contains X

在shell脚本中,如何确定字符串是否包含在另一个字符串中。 在bash中,我只想使用=〜,但我不知道如何在/ bin / sh中做同样的事情。 可能吗?

您可以使用案例陈述:

case "$myvar" in
*string*) echo yes ;;
*       ) echo no ;;
esac

所有你需要做的是替代string任何你所需要的。

例如:

case "HELLOHELLOHELLO" in
*HELLO* ) echo "Greetings!" ;;
esac

或者,换句话说:

string="HELLOHELLOHELLO"
word="HELLO"
case "$string" in
*$word*) echo "Match!" ;;
*      ) echo "No match" ;;
esac

当然,你必须要知道$word不应包含魔术全局字符,除非你打算进行全局匹配。

您可以定义一个功能

matches() {
    input="$1"
    pattern="$2"
    echo "$input" | grep -q "$pattern"
}

获得正则表达式匹配。 注意:用法是

if matches input pattern; then

(没有[ ] )。

您可以尝试在“这是一个测试”中查找“他的”

TEST="This is a test"
if [ "$TEST" != "${TEST/his/}" ]
then
echo "$TEST"
fi

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM