匹配 Bash 中变量中的第一个子字符串

Matching first substring within a variable in Bash

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

value = 'abc'

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

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

在上面的示例中,$backupfirstlast 子字符串中包含 abc。但是,我只想检查 first substringurls://string1abc.com

我有以下命令,但它会检查 backup

中的所有子字符串
grep -qs $value $backup && test='PASS' || test='FAIL'

您可以使用 parameter expansion:

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