#!/bin/bash
str="fail";
echo ${str} |awk -v var1="pass" \
-v var2="ok" \
-v var3="partial|fail" \
-v var4="pass" \
'{ if (( $0 ~ var1 ) || ( $0 ~ var2 ) || ( $0 ~ var3 ) || ( $0 ~ var4 )) {
print "yes";
} else {
print "no";
}}'
При необходимости вы можете заменить указанные выше назначения переменных в кавычках на значения «на лету». Если я понял требование, это то, что "yes" должно выводиться всякий раз, когда "str" сопоставляется с некоторой частью одной из переменных?