Ich habe zwei Variablen (PACKAGE_NAME
und PACKAGE_LIST
) und ich versuche zu überprüfen, ob PACKAGE_LIST
PACKAGE_NAME
enthält. HierÜberprüfen, ob die Liste spezifische Zeichenfolge enthält
ist, was ich habe:
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
Das Problem, das ich habe, ist, dass während rpm-foo
zu rpm-foo-bar
ähnlich ist, es ist nicht das Gleiche und sollte die else-Anweisung fallen in (PACKAGE_NAME
ist NICHT in PACKAGE_LIST
). Ich habe versucht, eine $
zum String-Vergleich hinzufügen, aber das funktioniert nur, wenn PACKAGE_LIST
endet in der PACKAGE_NAME
. Stattdessen wird an PACKAGE_LIST
eine Version angehängt. Wie kann ich diesen Check schlauer machen, damit der Check in "PACKAGE_NAME
ist NICHT in PACKAGE_LIST
" fällt?
HINWEIS: manchmal PACKAGE_LIST
wird keine Version enthalten und wird wie folgt aussehen:
PACKAGE_LIST="rpm-foo-bar"
Das funktioniert, wenn PACKAGE_LIST die Version enthält. Ich habe die Frage so aktualisiert, dass sie nicht immer so aussieht. –
Ich habe meine Antwort aktualisiert – redneb
Ich hatte nicht daran gedacht, ein oder. Das funktioniert großartig. Vielen Dank! –