首页 > 解决方案 > 在 Bash 中匹配变量中的第一个子字符串

问题描述

我有 2 个变量valuebackup具有以下值:

value = 'abc'

backup = urls://string1abc.com, urls://string1cde.com, urls://string1efg.com, urls://string1abc.com

我想检查变量中的first substring前逗号backup,然后 grep for $value,如果它匹配那么$test=PASS

在上面的示例中,$backup包含abcfirstlast子字符串中。但是,我只想检查first substring哪个是urls://string1abc.com

我有以下命令,但它会检查其中的所有子字符串backup

grep -qs $value $backup && test='PASS' || test='FAIL'

标签: linuxbashsedgreprhel

解决方案


您可以使用参数扩展

if [[ ${backup%%,*} = *"$value"* ]]; then 
    test=pass
else
    test=fail
fi

推荐阅读