我有两个变量(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
类似,但它不一样,应该落入else语句中(PACKAGE_NAME
不在{{1} }})。我尝试在字符串比较中添加PACKAGE_LIST
,但只有$
在PACKAGE_LIST
结束时才有效。相反,PACKAGE_NAME
附加了一个版本。如何使此检查变得更智能,以便检查属于“PACKAGE_LIST
不在PACKAGE_NAME
”中?
注意:有时PACKAGE_LIST
不会包含版本,如下所示:
PACKAGE_LIST
答案 0 :(得分:2)
怎么样
[[ ${PACKAGE_LIST} =~ "${PACKAGE_NAME}:" || ${PACKAGE_LIST} == ${PACKAGE_NAME} ]]