У меня есть две переменные (PACKAGE_NAME
и PACKAGE_LIST
), и я пытаюсь проверить, содержит ли PACKAGE_LIST
PACKAGE_NAME
.Проверьте, содержит ли список определенную строку
Вот что у меня есть:
PACKAGE_LIST="rpm-foo-bar:5.0.1"
PACKAGE_NAME="rpm-foo"
if [[ ${PACKAGE_LIST} =~ "${PACKAGE_NAME}" ]]; then
echo "PACKAGE_NAME is in PACKAGE_LIST"
else
echo "PACKAGE_NAME is NOT in PACKAGE_LIST"
fi
Проблема у меня в том, что в то время как rpm-foo
похож на rpm-foo-bar
, это не то же самое, и должны попасть в заявление еще (PACKAGE_NAME
НЕ в PACKAGE_LIST
). Я попытался добавить $
в сравнение строк, однако это работает, только если PACKAGE_LIST
заканчивается на PACKAGE_NAME
. Вместо этого PACKAGE_LIST
имеет к нему добавленную версию. Как я могу сделать эту проверку более умной, чтобы проверка попала в «PACKAGE_NAME
НЕ В PACKAGE_LIST
»?
Примечание: иногда PACKAGE_LIST
не будет содержать версию и будет выглядеть следующим образом:
PACKAGE_LIST="rpm-foo-bar"
Это работает, когда PACKAGE_LIST содержит версию. Я обновляю вопрос, чтобы включить, что он не всегда выглядит так. –
Я обновил свой ответ – redneb
Я не думал об использовании или. Это отлично работает. Благодаря! –