[英]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.