我想测试一个字符串是否有“子字符串”。大多数在线答案都基于 Bash。我试过了

if [ $string == "*substring*" ]

这是行不通的。现在
if echo ${string} | grep -q "substring"

工作。有没有其他更好的方法。

最佳答案

使用符合 POSIX 的 parameter-expansion 和经典的 test-command

#!/bin/sh

substring=ab
string=abc

if [ "$string" != "${string%"$substring"*}" ]; then
    echo "$substring present in $string"
fi

(或)显式使用 test 运算符作为
if test "$string" != "${string%$substring*}" ; then

关于sh - 如何在 Bourne Shell 中检查子字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40771231/

10-13 07:55